关注
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, 和主流限流算法)。
点赞
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
5818次浏览 92人参与
# 工作中的卑微时刻 #
33369次浏览 199人参与
# 牛客AI体验站 #
16133次浏览 283人参与
# 多益网络工作体验 #
63084次浏览 306人参与
# 正在实习的碎碎念 #
1644527次浏览 13716人参与
# 有必要和同事成为好朋友吗? #
813次浏览 17人参与
# 面试中的破防瞬间 #
1189888次浏览 11026人参与
# 滴!实习打卡 #
786308次浏览 6841人参与
# 秋招吐槽大会 #
304110次浏览 1523人参与
# 工作一周年分享 #
52262次浏览 274人参与
# 机械人的薪资开到多少,才适合去? #
164952次浏览 571人参与
# 你最满意的offer薪资是哪家公司? #
71308次浏览 353人参与
# 大学最后一个寒假,我想…… #
89184次浏览 809人参与
# 哪些公司真双非友好? #
62782次浏览 268人参与
# OC/开奖 #
411141次浏览 2282人参与
# 如果可以选,你最想从事什么工作 #
721671次浏览 4870人参与
# 如何提高实习转正率? #
86408次浏览 504人参与
# 如何确定求职岗位 #
723321次浏览 6427人参与
# 面试线索爆料 #
108583次浏览 641人参与
# 我们是不是被“优绩主义”绑架了? #
32533次浏览 485人参与
查看12道真题和解析
格力公司福利 356人发布