架构设计(一)

1. 架构设计(一)

1.1. 目录

751560-20190320193718099-1774000877.png

1.2. 高可用设计

751560-20190320195214546-1003947930.png

751560-20190320202150469-96787359.png

1.3. 性能优化目标

  1. 中间这块为目标区域
    751560-20190320202735931-1393811447.png

1.4. 高并发设计

751560-20190320203623305-1232268321.png

1.5. 代码层次优化

751560-20190320204139841-728335837.png

751560-20190320210319371-348200527.png

751560-20190320210657829-225031155.png

1.6. 数据库层次优化

751560-20190320205358451-83372044.png

1.7. 算法逻辑优化

751560-20190320213025383-1715291162.png

1.8. 架构层次优化

751560-20190320213310536-532897704.png

1.9. 秒杀系统架构

751560-20190320214144158-1716965400.png

1.10. 分级缓存

751560-20190320215810296-443617936.png

1.11. 类似微博的存储选型

751560-20190320221234272-206969531.png

1.12. 服务无状态化设计与实现

751560-20190321193621112-1677622734.png

1.13. 服务幂等设计与实践

751560-20190322193532298-70521292.png

1.14. 分布式锁设计与实践

751560-20190324200827263-1613482477.png

  1. 分布式锁需要用CP模型,保证一致性,如果用redis来做,主从的时候肯定会存在问题,因为redis主从是AP模型。严格来讲需要用一个CP模型来解决分布式锁问题

751560-20190324205914510-883627177.png

751560-20190324210216894-2133372198.png

1.14.1. 分布式锁选型和方案

751560-20190324210634240-986092869.png

1.14.2. 客户端模式

751560-20190324210807079-1675009007.png

1.14.3. 申请锁

751560-20190324211255699-1245579965.png

1.14.4. 申请锁,已被持有

751560-20190324212316815-1692263463.png

1.14.5. 删除锁

751560-20190324212329577-1726184001.png

1.14.6. 业务接入

751560-20190324212517368-28930846.png

1.14.7. 获取锁平均耗时监控

751560-20190324212658449-935813435.png

1.14.8. etcd兼容性、恢复和版本

751560-20190324213202636-1800127515.png

1.14.9. 分布式锁的特殊场景

751560-20190324213911973-1434349015.png

  1. 也就是说,分布式锁并不能保证幂等性
  2. 网络问题导致的续租失败,或者gc时间过长,导致的服务暂停时间过长

转载于:https://www.cnblogs.com/sky-chen/p/10568184.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值