博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分布式系统架构之设计篇
阅读量:6687 次
发布时间:2019-06-25

本文共 696 字,大约阅读时间需要 2 分钟。

#弹力设计

##隔离性设计

隔离是对系统进行解耦

实现方式如下:

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

持续更新中......

转载地址:http://yyeao.baihongyu.com/

你可能感兴趣的文章
揭秘设计模式:适配器模式(Adapter)
查看>>
centos救援模式修改root密码
查看>>
我的友情链接
查看>>
Linux系统的启动和修复模式
查看>>
软件发布版本区别介绍
查看>>
kvm虚拟机迁移
查看>>
Docker 修改docker容器内部时间
查看>>
解决windows下redis狂占C盘内存
查看>>
yii2高级模板添加新增模块
查看>>
【推荐】(SqlServer)不公开存储过程sp_Msforeachtable与sp_Msforeachdb详解
查看>>
TURBOGATE邮件网关——最经济高效的企业网关选择
查看>>
MS14-058 最新提权神器
查看>>
数据挖掘算法(Analysis Services – 数据挖掘)
查看>>
Apache配置详解(最好的APACHE配置教程)
查看>>
CentOS 7 下基于基 bitnami 安装部署 redmine
查看>>
linux ubuntu apt-get 更换源
查看>>
【Web探索之旅】第二部分第三课:框架和内容管理系统
查看>>
Javascript中公有成员,私有成员,静态成员
查看>>
DB2-内存的使用
查看>>
第四、五章解决队列和串的编程问题
查看>>