美文网首页
高可用分布式架构关注点

高可用分布式架构关注点

作者: 哓晓的故事 | 来源:发表于2019-02-27 11:53 被阅读0次

参考

1分布式架构类型

1.1. SOA(存在中心)

有序、复用、高效
关注系统集成,快速组合出新的业务服务

  1. 通过ESB进行连接(有序)
  2. 系统服务化(复用)
  3. 业务服务化(通过ESB组装系统服务,达成业务服务化)

1.2. 微服务架构 dubbo

关注服务治理,服务分离

  1. 通过服务实现组件化
  2. 业务能力来划分服务和开发团队
  3. 去中心化
  4. 基础设施自动化(DevOps、自动化部署)

关心流量控制,熔断,监控

2. 分布式架构理论

2.1 CAP

C一致性,所有节点上的数据时刻保持同步,会导致(每台机器的不可用概率会被放大)可用性
A可用性,每个请求都能接收一个响应,无论响应成功或失败,会导致不一致
P分布式容忍性,系统应该持续提供服务,即使系统内部(某个节点分区)有消息丢失,是必选的

强一致场景:12306卖票
最终一致场景:银行转账

CAP适用于原子读写NoSQL 场景中,并不适用数据库系统
分布式(数据库分片或分库存在的多个实例上)前提下,CAP 理论并不适合数据库事务

2.2 BASE

XA 事务虽然保证了数据库在分布式系统下的 ACID (原子性、一致性、隔离性、持久性)特性,但同时也带来了一些性能方面的代价,对于并发和响应时间要求都比较高的电商平台来说,是很难接受

Basically Available(基本可用)
Soft-state(软状态)
Eventually consistent(数据的最终一致性)

即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性

3. 分布式架构下高可用

3. 1 避免单点

  • 负载均衡(去中心化)(无状态、有状态)
  • 热备HA
  • 多机房(容灾 同城/异地)

3. 2 应用高可用

  • 降级
  • 限流
  • 缓存
  • 故障监控(系统健康(CPU),JVM健康,调用链监控,日志监控)
  • 数据拆分(分库分表,读写分离)

3. 3 可伸缩性

  • 横向伸缩(业务可以配置 增加、减少)
  • 纵向伸缩(应用状态通过第三方服务器保证)
  • 增加服务器
  • 提升硬件

3.4 加快反馈(预热)

CDN 作用是把用户需要的内容分发到离用户最近的地方进行响应,这样用户能够快速获取所需要的内容。
CDN 本质上就是一种网络缓存技术
最适合的是那些不会经常变化的内容,比如图片,JS 文件,CSS文件

3.5 防止大面积业务故障

使用灰度发布
新应用进行分批发布逐步扩大新应用在整个及集群中的比例直到最后全部完成
根据自己的配置,来将用户的流量导到新上线的系统上,来快速验证新的功能(A/B Test
接入层进行配置信息判断命中目标的切到新应用的服务器

相关文章

网友评论

      本文标题:高可用分布式架构关注点

      本文链接:https://www.haomeiwen.com/subject/diyxuqtx.html