分布式系统架构之设计篇

#弹力设计

##隔离性设计

隔离是对系统进行解耦

实现方式如下:

1、按业务拆分

2、按用户拆分

##异步通讯设计

系统解耦不单单是把业务拆分,拆分后业务之间如何通讯

实现方式如下:

1、按请求响应模式

2、按订阅模式

3、按Broker模式

第2、3中模式就是事件驱动模式。

##幂等性设计

一次调用和N次调用某个资源时,具有相同的副作用

实现方式如下:

1、下游系统提供查询接口,如果查询到说明成功,否则失败。

2、提供全局ID,唯一标识,上游系统只管调用,幂等性由下游系统保证。

推荐Twitter 开源项目Snowflake,分布式id生成算法。

##补偿事务设计

分布式系统或者当下流行的微服务,一个业务流程会调用多个服务,而一个业务少不了数据的一致性。例如: 下单、支付、扣库存。所以通过CAP原理,经过对ACID和BASE理论分析,得出强一致和可用性场景。大多数分布式系统是很难做到强一致的,针对弱一致或最终一致业务补偿机制是很有必要的。

1、尽最大努力执行完这个业务流程(幂等性、重试机制)

2、监控整个流程中的状态(调用前的状态,调用后的状态,期望的状态),把状态数据保存到一个高可用和稳定的组件上。

3、失败时进行回滚,撤销操作。

##重试设计

1、重试要针对特定的错误进行重试,例如超时、等待繁忙。而有明确业务错误(http 503,权限等)的不必去重试。

2、设定重试阈值,例如3次。

##熔断设计

当重试阈值之后,应该进行熔断操作。

可自行研究Spring Cloud Hystrix

##限流设计

自行研究Spring Cloud Zuul

持续更新中......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值