电商项目技术站盘点

1、技术架构

 

2、系统架构

 3、技术说明

3.1spring cloud :微服务搭建,按照业务进行拆分

  • changgou_gateway
  网关模块,根据网站的规模和需要,可以将综合逻辑相关的服务用网关路由组合到一起。在这里还可以做鉴权和限流相关操作。
  • changgou_service
  微服务模块,该模块用于存放所有独立的微服务工程。
  • changgou_service_api
  对应工程的JavaBean、Feign、以及Hystrix配置,该工程主要对外提供依赖。
  • changgou_transaction_fescar
  分布式事务模块,将分布式事务抽取到该工程中,任何工程如需要使用分布式事务,只需依赖该工程即可。
  • changgou_web
 web服务工程,对应功能模块如需要调用多个微服务,可以将他们写入到该模块中,例如网站后台、网站前台等

3.2技术点摘要

  • FastDFS:分部式文件系统,对图片等文件进行管理,实现文件的上传下载,可以进行限流【漏桶算法】
  • JWT:实现微服务鉴权(JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。一个JWT实际上就是一个字符串,它由三部分组成,头部、载荷与签名。)
  • OpenResty:封装了Nginx,并且提供了Lua扩展,大大提升了Nginx对并发处理的能,10K-1000K  Lua->广告缓存操作
  • canal:用来监控数据库数据的变化,从而获得新增数据,或者修改的数据,应用场景一,数据库的同步备份;应用场景二,监控数据修改,将数据同步到缓存中
  • elasticsearch:基于Lucene的搜索服务器,用Java语言开发,提供分布式多用户能力全文搜索
  • SpringSecurity Oauth2.0:实现单点登录,使用公钥加密,私钥解密的方式,进行微服务之间的权限认证
  • 对接微信支付:微信支付开发文档,XML进行信息传输;利用微信传输的固定字段,来区分秒杀队列
  • rabbitMQ:利用死信队列进行  超时订单处理
  • 商品秒杀:将商品用定时任务按照时间段缓存到redis中,用redis的incr解决幂等问题
  • 流量削峰:采用队列多线程的方式处理流量削峰
  • 幂等问题场景:①用户点击按钮重复下单②消息队列广播消息某个服务没成功,重复发送该消息后,重复消费问题③RPC请求以为消息没成功,重新发送重试的时候
  • 分布式事务:事务的特性,事务的传播行为,事务的隔离级别,本地事务,CAP定理,分布式解决方案:①2段提交(XA)②三段提交(TCC)③RocketMQ事务消息④seata(Alibaba)
  • redis集群:使用crc16 算法,再分配哈希槽,进行消息存储,主节点挂掉超过半数集群不可用(主节点数为奇数个);哨兵机制;redis的持久化RDB和AOF,缓存击穿,缓存雪崩,采用三次缓存(nginx-redis-mybatis二级缓存)canal进行数据同步。

 

3.3讲义地址

https://gitee.com/wangfandi/changgou/tree/master

posted @ 2020-08-23 23:16  songjn  阅读(282)  评论(0编辑  收藏  举报