B2C技术架构和功能说明

本系统采用Maven来管理和开发,属于java分布式,由nginx负载均衡,tomcat作为服务器,搭建tomcat集群,nosql  redis作为缓存和数据库,

Mysql作为后台数据库,主从结构,读写分离。服务器采用linux 作为服务器。

一:sso单点登录系统

       1.检测参数是否可用jqueryAjax

       2.用户注册,同时检测数据的可用性

       3.用户登录,登录成功,并将其用户信息存入redis缓存,同时给客户端写回缓存的redis的key,且设置其生存时间。

       4. 查询用户是否已经登录,即拿着客户端的cookie去redis缓存去查。

   二 :ItemSearch 商品搜索系统

1.      根据搜索条件(page pageSize) 利用httpClient去搜索系统去查询商品信息。

2.      当后台商品信息时,通过RabbitMQ中交换机给搜索系统发来监听消息,搜索系统接收商品删除.修改.增加的消息并作出相应的处理。

 

   三. Manager-后台商品   

       1.添加商品基本信息,商品描述信息,商品规格信息(三张表)

         通过RabbitMQ declare 的Exchange发送信息给solr(ItemSearch(搜索系统),搜索系统将其添加到document中

2.更新商品基本信息,商品描述信息,商品规格参数

通过RabbitMQ 交换机发送到web(前台系统)和ItemSearch(商品搜索系统),web删除缓存 ,搜索系统更新document

       3.查询商品所有信息,先走redis缓存,找不到再查询数据库,之后再存入redis

       4.查询所有商品基本信息(分页)

   四.Manager-类目系统

      1.通过商品类目Id(itemCatId)查询出该类目的相关信息。

      2.查询出所有类目(三级)封装在一个json里面

      3.根据商品类目Id(itemCatId)查询出该类目对应的规格参数名称。
       4.根据商品类目Id(itemCatId)保存该类目对应的规格参数名称。

      5.查询该类目对应的规格参数名称,可以用来填写该商品的规格参数。(商品有唯一对应的类目)

      6.商品图片上传,保存到图片服务器。

   五.Manager-crm内容管理系统

      1.内容保存查询 修改 删除 且通过RabbitMQ消息通知 Web前台系统,删除redis内容缓存。

   六.web前台系统

      1.加载首页,从后台Manager-crm内容管理系统查询出内容,并缓存到redis中,监听消息队列,删除缓存

      2.商品详情页,先从redis缓存中拿item,如果不存在,再通过httpClient查询后台系统,得出商品详细信息。

       监听消息队列,当后台商品信息删除,修改时,前台收到消息,删除redis缓存对应的商品信息。

3.      购物车(未登录时)

       游客第一次添加商品到购物车,解决方案是将商品放在redis缓存中,生成一个购物车cartRedisKey,并将该cartRedisKey 以cookie写回到

       客户端,并设置该购物车的生存时间。购物车的数据以json格式保存在redis中。

        当用户已经有cartRedisKey时候,用户会通过cookie带过来,这样就可以在Redis中找到该cartRedisKey对应的购物车,同时为保证购物车的活力,

       更新他的生存时间。

      4.删除购物车的商品,通过cartRediskey找到购物车,删除相应的item。再将其保存到redis缓存中,更新其生存时间,

      5 . 修改和以上同理,之下是购物车的在redis中的原理图:hget hset

      

      6.购物车(用户登录时)

        系统将userId和itemId保存到购物车系统中,通过httpClient保存购物车商品信息到购物车系统。删除,更新都是通过购物车系统

提供的接口来完成删除和修改甚至保存。

      7,如果用户没有登录却在一直查看商品,配置拦截器每天一次刷新购物车的生存时间。当天是否刷新过以客户端cookie为准。

      8. 在购物车生成订单,之前配置用户是否登录拦截器,没有登录的重定向去登录。

      9. 去sso系统登录,登录成功以后,将客户端的cookie中的cartRedisKey以及userId发送到RabbitMQ交换机,购物车队列绑定到交换机上

         获取消息,合并购物车。并删除redis缓存中的购物车数据。

         

10. 购物车生成订单,把订单数据发送到订单系统生成订单,存到数据库。通过RabbitMQ发送消息删除购物车信息。

    RabbitMQ把订单的orderId和userId发送到orderSearch系统中添加到solrdocument中。

 

 11.搜索商品,去itemSearch系统中搜索商品,分页查询和显示。

 12.会员个人中心。显示所有的订单,去订单系统中查找所有的订单。

 13.会员个人中心。根据订单号 或者商品title去搜索相应的订单并分页显示。

 

七.订单系统

  1.创建订单 查询订单 修改订单状态 根据用户昵称查询订单。

八.订单查询系统

  1.根据关键字查询去查询订单,分页。

  2.监听队列,有消息过来就插入订单到solrdocument中。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值