天天吃货电商系统从单体到分布式高可用系统搭建

我要开发同款
万有财2022年03月21日
289阅读
所属分类零售电商系统

作品详情

天天吃货电商系统前端使用 Jquery、vue.js,后端使用 SpringBoot、SpringMVC、Mybatis 开发,集成 swagger 接口文档,支持微信和支付宝支付。单体到高可用集群搭建(容器使用 Docker):Nginx 集群使用 LVS+Keepalived+Nginx 实现高可用集群搭建;Redis 集群利用三主三从集群模式搭建,并集成 Redis 哨兵机制;用户分布式会话使用 CAS 单点登录实现;搭建分布式搜索引擎 Elasticsearch,实现商品分页搜索与高亮,商品搜索排序等;分布式文件系统使用 nginx fastdfs 实现用户头像和商品图片上传与修改,并集成阿里 OSS;分布式消息队列使用镜像模式搭建 RabbitMQ集群架构,并实现下单、扣库存、支付可靠性投递;使用 Zookeeper 集群加 kafka 节点集群搭建海量日志收集高可用系统,使用 log4j2 做日志输出,FileBeat 日志收集,kafka 日志消息投递,logstash 日志过滤,elasticsearch 日志持久化,kibana 日志可视化;使用 curator 分布式锁和 redisson 分布式锁解决超卖现象;使用 Sharding-Jdbc 实现读写分离,分库分表;使用雪花算法实现分布式 ID,解决由于分库分表引起的 id 在全局不唯一,两个分片出现相同的 id,导致业务混乱等问题;基于本地消息表和 MQ 的最终一致方案(RocketMQ)解决分布式系统中,业务拆分成多个数据库,无法统一事务,造成数据不一致的问题;使用 token、redis、redisson 分布式锁解决订单支付幂等性问题;基于 Redis+Luas 的分布式限流策略解决电商系统连接数和 QPS 过高限流解决方案。单体到微服务项目改造:通过抗压维度和业务维度两个维度对之前单体项目领域模块拆分,拆分为搜索模块、商品模块、购物车模块、权限模块、用户模块、订单模块;集成服务治理-Eureka 搜索中心、商品中心、购物车中心、权限中心、用户中心、订单中心;集成负载均衡-Ribbon 七种策略实现购物车、商品中心、订单中心高可用;集成服务间通信与调用-Feign 实现在用户模块对购物车和商品中心、订单中心的调用;集成服务容错 Hystrix 对订单模块 Feign 接口降级配置;集成分布式配置中心 Config,对搜索中心、商品中心、购物车中心、权限中心、用户中心、订单中心改造,并使用非对称加密算法加密;集成 BUS-消息总线对配置中心实现自动推送;集成服务网关-Gateway 对权限认证-分布式 Session 替换成基于 jwt 的网关层鉴权服务,对服务端各类异常做统一处理;集成服务调用链追踪-Sleuth,搭建 Zipkin 服务端,Sleuth 集成 Zipkin,集成 ELK 实现日志搜索;集成消息中间件-Stream 实现批量强制用户 Logout、关闭超时订单;集成 Sentinel 整合 Apollo,实现对订单接口流量防控。部署:使用 Docker 部署 Nginx、Redis、Elasticsearch、fastdfs、RabbitMQ、kafka、RocketMQ 等集群环境;使用K8S 对微服务的部署。
查看全文
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论