当前位置: 首页 > news >正文

Java电商项目面试题(五)

ActiveMQ如果数据提交不成功怎么办?
Activemq有两种通信方式,点到点形式和发布订阅模式。如果是点到点模式的话,如果消息发送不成功此消息默认会保存到activemq服务端知道有消费者将其消费,所以此时消息是不会丢失的。
如果是发布订阅模式的通信方式,默认情况下只通知一次,如果接收不到此消息就没有了。这种场景只适用于对消息送达率要求不高的情况。如果要求消息必须送达不可以丢失的话,需要配置持久订阅。每个订阅端定义一个id,在订阅是向activemq注册。发布消息和接收消息时需要配置发送模式为持久化。此时如果客户端接收不到消息,消息会持久化到服务端,直到客户端正常接收后为止。

当被问到某个模快存在安全性问题(sso单点登录系统)时,如何回答?目前淘淘商城的sso系统的解决方案中直接把token保存到cookie中,确实存在安全性问题。但是实现简单方便。如果想提高安全性可以使用cas框架实现单点登录。
https://www.apereo.org/projects/cas

你做过电商项目,那么你说说sku的几种常用设计方法,你们的sku是怎么设计的?
sku:Stock Keeping Unit(库存量单位)产品统一编号的简称,每种产品均对应有唯一的SKU号
SKU属性的设计,可以分为两类:
(1)通过属性集关联SKU属性 适合品类较少的网站,管理容易些。
(2)产品和SKU属性直接关联
适合品类很多网站,比较灵活,但是维护起来数据量比较大。
为了简化,我增加SKU属性关联产品分类(可为空,表示是全局的),这样在创建产品时,可以只列出全局的+本产品分类的SKU属性,这样就不会一下子列出很多SKU属性了。SKU属性分为前端名称和后台名称两个,方便不同业务含义的SKU属性,在前端也能够用同一个名称显示,如颜色、容量等。另外在操作上可以做些优化,比如用下拉列表显示可选的SKU属性时,可以同时显示该属性的属性描述,供产品维护人员参考。
基于SKU方式来管理产品时,产品的价格、库存和图片等信息必然是放在产品SKU表中处理的,和订单、购物车等表的关联,也是通过产品SKU表,而不是产品表。至于产品表,实际上是一个总的业务汇总和外部关联表,但实际销售的并不是它。我们网站做的更细些,会就每个产品SKU生成独立的URL(伪静态),但从SEO方面考虑,每个产品SKU拥有独立

单点登录具体实现了什么功能?

  1. 去登陆页面
  2. 提交登陆页面
  3. 用户名、密码、验证码的校验
  4. 错误信息的回显
  5. 保存用户到Session中
  6. 重定向到登陆之前的访问页面
  7. Ajax跨域判断用户是否登陆

Redis在其中是怎么用的?起了什么作用?
redis中存储的都是key-value格式的。拿商品数据来说,key就是商品id,value是商品相关信息的json数据。
在商城系统中当并发量比较高,频繁的对数据库进行读操作的时候都需要添加缓存。例如页面中内容数据的缓存、商品数据的缓存以及用户数据的缓存等。
做商品数据的缓存时,因为商品的数据量很大,而且缓存是把数据保存到内存中,此时不可能把所有的商品数据都放到缓存中。所以需要设置商品数据缓存的有效期,当用户访问到非热点数据后,此数据放到缓存中,当缓存到期后就从缓存中删除,而且长时间不会添加到缓存。而热点数据一旦从缓存中删除会马上又添加到缓存。这样可以提高缓存的利用率,同时也减轻了数据库的压力。

转载于:https://blog.51cto.com/13517854/2073934

相关文章:

  • 流媒体之HLS——综述
  • 人工智能三年行动计划启动,推动人工智能和实体经济深度融合
  • MySQL数据库----IDE工具介绍及数据备份
  • 阿里云CodePipeline亮相,帮助用户实现持续集成与交付
  • 使用Photoshop+960 Grid System模板进行网页设计
  • div层次整理 / 自定义pycharm补全 / 注释 /keymap /tab
  • [译]Flutter for Android Developers - Async UI
  • 使用nexus搭建Maven私服
  • Py徐少攻关之初探 编码 语言分类 (2)
  • 从高大上航拍到接地气撒农药,大疆推出MG-1农业植保机
  • mongo中命令工作原理
  • 「镁客·请讲」黑晶VR徐强:VR教育先抓核心阵地,快速攻占学校
  • 标榜着“有情绪”的机器人们,真的有情绪吗?
  • spring boot 集成 elasticsearch 2.4.6
  • zabbix故障:apache源码和页面上的php红色提示
  • 【347天】每日项目总结系列085(2018.01.18)
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 11111111
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Date型的使用
  • Flannel解读
  • LeetCode算法系列_0891_子序列宽度之和
  • magento 货币换算
  • Redis中的lru算法实现
  • 百度地图API标注+时间轴组件
  • 代理模式
  • 你不可错过的前端面试题(一)
  • 浅谈web中前端模板引擎的使用
  • 微信公众号开发小记——5.python微信红包
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • #Linux(make工具和makefile文件以及makefile语法)
  • #NOIP 2014#Day.2 T3 解方程
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (三)Honghu Cloud云架构一定时调度平台
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .NET CORE Aws S3 使用
  • .NET Core 版本不支持的问题
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET轻量级ORM组件Dapper葵花宝典
  • @Transactional 详解
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例
  • [ 蓝桥杯Web真题 ]-布局切换
  • [C++进阶篇]STL中vector的使用
  • [HackMyVM]靶场 VivifyTech
  • [MFC] MFC 获取指定窗口截图(大小可调)
  • [MySQL]基础的增删改查
  • [office] excel如何计算毛重和皮重的时间间隔 excel计算毛重和皮重时间间隔方法 #笔记#学习方法
  • [one_demo_7]求走到第50个台阶的走法多少种
  • [pasecactf_2019]flask_ssti proc ssti config