课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
高可用性是程序员在学习软件架构的时候需要满足的一个开发需求,而今天我们就通过案例分析来了解一下,高可用性架构包含哪些内容。
解耦
1.高内聚、低耦合的组件设计原则
2.面向对象基本设计原则
3.面向对象设计模式
4.领域驱动设计建模
隔离
1.业务与子系统隔离
2.微服务与中台架构
3.生产者消费者隔离
4.虚拟机与容器隔离
异步
1.多线程编程
2.反应式编程
3.异步通信网络编程
4.事件驱动异步架构
备份
1.集群设计
2.数据库复制
CAP原理
失效转移(Failover)
1.数据库主主失效转移
2.负载均衡失效转移
如何确认失效,需要转移?
设计无状态服务
幂等
应用调用服务失败后,会将调用请求重新发送到其他服务器,但是这个和失败可能是虚假的失败。比如服务已经处理成功,但是因为网络故障应用没有收到响应,
这时应用重新跳请求就导致服务重复调研,如果这个服务是一个转账操作,就会产生严重后果。
服务重复调用有时候是无法避免的,必须保证服务重复调研和调用一次产生的结果相同,即服务具有幂等性。有些服务天然具有幂等性,比如将用户性别设置为
男性,不管设置多少次,结果都一样。但是对于交易等操作,问题就会比较复杂,需要通过交易编号等信息进行服务调用有效性校验,只有有效的操作才继续执行.
事务补偿
用于解决分布式系统部分失败的情况下系统的可用性
传统事务的ACID
1.原子性(Atomicity)、一致性(Consistency)、隔离性(lsolation,又称独立性)、持久性(Durability)
分布式事务的BASE
1.基本可用(BasicAvailability)、软状态(Soft-state)、终一致性(Eventualconsistency)
事务补偿:通过执行业务逻辑逆操作,使事务回滚到事务前的状态
重试
远程服务可能会由于线程阻塞、垃圾回收或者网路抖动,而无法及时返还响应,调用者可以通过重试的方式修复单次调用的故障。
1.上游调用者超时时间要大于下游调用者超时时间之和。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。