分布式架构(分布式架构概述)
分布式架构是大家再熟悉不过的东西了,那么分布式架构究竟包含哪些内容呢?如果由于公司的业务发展,架构需要演进为分布式架构,那该怎么设计呢?
一、分布式架构的基础组件
注册中心
配置中心
RPC调用
服务熔断降级
消息队列
服务链路追踪
分布式锁
分布式事务
日志分析
注册中心
分布式架构中注册中心就是类似于心脏一样,管理着所有的服务,用来实现微服务实例的自动注册与发现,是分布式系统中的核心基础服务。
一般我们A服务调用B服务的时候都是B服务提供接口地址供A服务调用,A服务中配置B服务的接口地址,当B服务中有多个实例时,A服务中就需要配置多个地址,同时还需要自己实现负载均衡的功能,这种场景下配置复杂、维护成本高,注册中心就是用来解决这种问题的,当有注册中心时只需要在A服务中配置B服务的实例名即可
服务注册中心
注册中心的主要功能:
服务注册
服务发现
健康检查
变更通知
注册中心技术选型:
注册中心技术选型
配置中心
在我们日常工作中服务中的配置文件是不可避免的,例如如下最简单的一个配置
server:
port:8082spring:
application:
name:nacos-consumer
cloud:
nacos:
discovery:
server-addr:127.0.0.1:8848
配置即是可以在不重新编译代码的情况下,改变程序运行逻辑、调整边界值、被调用模块路由信息等等, 用来方便维护,提高工作效率一种手段。
在我们单体架构中往往是使用本地配置,即配置放在程序包中,当我们需要修改配置的时候可能需要重新打包,当有多个实例的时候,所有的实例都需要更改,维护非常麻烦,容易出错,同时各环境的配置文件都放在本地安全性也没有保障,例如开发不应该看到测试环境的配置,配置中心就是用来解决上述的问题的。
配置中心既是分布式系统中集中化管理线上应用程序配置项的管理中心,引入了配置中心之后效率得以提升,维护成本降低,安全性也有提高,所有的服务统一从配置中心中拉取配置,服务中只需要配置配置中心的地址即可。
配置中心技术选型:
配置中心选型
服务熔断降级
在分布式架构中服务之间存在相互调用,但我没法保障所有的服务都是100%可用的,当某个服务由于网络故障不可用时,上游服务调用它就会一直阻塞直到超时,当并发量很高时就会造成上游服务阻塞过多服务崩溃,该上游服务还有其他上游服务调用,会造成一连串的反应,就是我们所说的雪崩,这时候如果我们直接告诉上游服务该服务不可用,就能避免造成崩溃。
服务雪崩类似于下图
服务雪崩
服务熔断与降级就是用来解决由于某个服务不可用造成整个分布式系统雪崩的问题的。
服务熔断:临时关闭对某些功能的调用,个别业务不可用,系统整体可用
服务降级:有损提供服务,服务柔性可用
服务熔断就类似于家里的保险丝一样,分为预熔断与及时熔断,预熔断既是提前熔断,例如双11的时候,淘宝无法更改收货地址即是一种预熔断的方式,提前关闭更改收货地址功能减少流量。及时熔断则是当触发某一设定条件的时候熔断,例如当调用某服务连续10次都失败后则认为该服务不可用,则会采取熔断措施。
服务降级则是有损的提供服务,例如返回一些用户不易感知的兜底数据,保证了服务的柔性可用。
服务熔断与降级都是从可用性和可靠性出发,为了防止系统崩溃。
服务熔断与降级技术选型:
相关文章:
相关推荐: