关注
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, 和主流限流算法)。
点赞
相关推荐
查看4道真题和解析
点赞 评论 收藏
转发
点赞 评论 收藏
转发
牛客热帖
正在热议
# 和牛牛一起刷题打卡 #
7336次浏览 677人参与
# 机械制造薪资爆料 #
345229次浏览 4074人参与
# 牛客帮帮团来啦!有问必答 #
1027654次浏览 15671人参与
# 晒一晒我的offer #
3693254次浏览 57302人参与
# 通信硬件薪资爆料 #
247461次浏览 2335人参与
# 我想象的工作vs实际工作 #
102967次浏览 1669人参与
# 你收到了团子的OC了吗 #
520775次浏览 6196人参与
# 现在还是0offer,延毕还是备考 #
403339次浏览 4837人参与
# 如何看待offer收割机的行为 #
243156次浏览 3436人参与
# 来选选带哪个offer回家过年 #
189464次浏览 1815人参与
# 腾讯工作体验 #
149009次浏览 1421人参与
# 工作丧失热情的瞬间 #
67106次浏览 802人参与
# 担心入职之后被发现很菜怎么办 #
34025次浏览 290人参与
# 你觉得今年秋招难吗 #
325043次浏览 5924人参与
# 如何写一份好简历 #
306228次浏览 4378人参与
# 重来一次,我还会选择这个专业吗 #
108599次浏览 1666人参与
# 24届软开秋招面试经验大赏 #
1123149次浏览 17588人参与
# 你的简历改到第几版了 #
325993次浏览 4932人参与
# 23届的你们都什么时候入职? #
92210次浏览 792人参与
# 你觉得机械有必要实习吗 #
11424次浏览 186人参与