电商项目介绍 (2)

之前实现登录和注册是在一个tomcat内部进行的。而现在的系统架构是每一个系统都是由一个团队进行维护的,每个系统都是单独部署的运行一个单独的tomcat,所以,不能将用户的登录信息保存到session中(多个tomcat的session是不能共享的)(session共享?),所以我们需要一个独立的系统来维护用户登录的信息。我们是这样做的,用户去登录页面登录,去数据库查询是否有该用户。如果没有用户提示用户,如果有用户信息保存到redis中,并生成token保存到cookie中。

在后台管理系统中采用了maven多模块开发。其中采用水平切分的方式(垂直和水平划分的区别:垂直:功能模块明确,层次不够清晰,代码chong重用性查,水平:层次清晰,代码重用性搞,独立维护)将各层分层开发,这样做的好处是代码重用性高,层次清晰,易于独立维护。系统内部接口调用采用httpClient,接口采用RESTful风格方式的接口定义(一种软件架构风格,设计风格而不是标准。只是提供了一组设计原则和约束条件)。系统之间的通知机制采用了MQ的方式,使用RabbitMQ的实现,使用RabbitMQ的消息订阅模式的消息机制,部署方面,采用了Nginx+tomcat的模式,其中nginx的作用一方面是做反向代理、负载均衡、另一方面是做图片等静态资源的服务器;

在此项目中我主要负责后台模块。主要实现商品管理和商品规格参数管理。对商品和商品规格进行CRUD操作。在实现前台调用数据的时候,为了实现系统之间的调用。便使用了httpclient技术来实现此功能,在后台提供了需要调用的接口。(httpclient介绍,工作原理,优缺点)。如果在后台对商品进行操作。为了使前台和后台数据实现同步,我们使用了RabbitMQ 消息队列机制实现商品同步功能(RabbitMQ介绍,工作原理,优缺点);

在此项目中,我还参加了购物车模块的开发。在开发这个模块的时候,我还考虑了会员在未登录和登录的情况下,把商品加入到购物车,后台如何保存商品信息。

在用户详情页点击加入购物车的时候,我们用了登录拦截器来判断用户是否登录,如果没有登录,将商品信息保存到cookie中,当用户登录后,再把商品持久化到数据库中,但是考虑到cookie存储大小的问题。还有当cookie存储的数据越多就会影响响应速度。我们决定使用redis来缓存用户在未登录的状态下的商品信息(redis的原理,介绍,优缺点)在redis中设计缓存生存时间(如何做到的),如果用户在规定的时间没有登录,数据变回自动删除,如果用户在规定的时间登录了,便会使用RabbitMQ消息队列机制将数据同步到数据库中。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzgdxg.html