关注
3、这个项目我是根据一个开源的单体项目拆分成分布式项目,用的框架是SpringBoot + Dubbo(远程通信) + Zookeeper(注册中心)。 拆分依据是通过业务层的UserService,CouponService,OrderServcie, UserService, PayService, GoodService 差分成了不同的服务, 服务如下: User-Service Module, Coupon-Service Module, Order-Service Module, Pay-Service Module, Goods-Service Module, Api Module等模块。由于单体项目是在一个JVM中运行的所以我拆分成分布式之后,Synchronize或者ReentrantLock就失效,为什么失效呢,因为这些服务部署在不同的结点上,运行在不同的JVM中,所以用单体锁,不能够防止超卖。所以我做的第一个工作就是,使用了分布式锁。主要解决方案有(mysql, redis, zookeeper)。 由于部署在不同的几点。在单体项目中的事务不能作用于不同的结点。所以这部分工作我使用了分布式事务。主要解决方案如下(基于xa协议的2PC, 3TC, 基于可靠消息的最终一致性)。由于redis和mysql服务器部署在不同的结点上,由于网络问题或其他问题,导致redis和mysql数据不一致性。主要解决方案如下(延迟双删,设置过期时间,删除缓存重试机制,binlog异步删除缓存)。在并发比较高的时候,防止系统被冲击,采用了一些一系列的流量削峰策略(CDN, Nginx, RocketMQ, 和主流限流算法)。
点赞
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 聊聊这家公司值得去吗 #
235320次浏览 2193人参与
# kpi面有什么特征 #
33387次浏览 238人参与
# 你认为哪个岗位找工作最卷 #
14017次浏览 52人参与
# 职场人,说说你的烦心事 #
8702次浏览 77人参与
# 一人一个landing小技巧 #
79483次浏览 1126人参与
# 为了找工作你投递了多少公司? #
10351次浏览 146人参与
# 职场上哪些事情令人讨厌 #
16744次浏览 86人参与
# 如果可以,你希望哪个公司来捞你 #
88110次浏览 371人参与
# 远程面试的尴尬瞬间 #
100579次浏览 827人参与
# 硬件人你反向读研了吗 #
41780次浏览 630人参与
# 入职第一天,你准备什么时候下班 #
56383次浏览 356人参与
# 大家每天通勤多久? #
42033次浏览 331人参与
# 小红书求职进展汇总 #
56155次浏览 486人参与
# 工作一周年分享 #
26950次浏览 131人参与
# 秋招最大的收获是什么? #
33956次浏览 300人参与
# 提前批过来人的忠告 #
105286次浏览 1144人参与
# 通信硬件牛牛的实习日记 #
7186次浏览 65人参与
# 聊聊你的职场新体验 #
157501次浏览 1369人参与
# 你有哪些缓解焦虑的方法? #
1761次浏览 104人参与
# 校招入职后的感受 #
276938次浏览 2678人参与