第7章 软负载中心与集中配置管理
7.1 初始软负载中心
软负载中心有两个最基本的职责:
一是聚合地址信息。无论是服务框架中需要用到的服务提供者地址,还是消息中间件系统中的消息中间件应用的地址,都需要有软负载中心去聚合地址列表,形成一个可供服务调用者及消息的发送者、接受者直接使用的列表。
二是生命周期感知。软负载中心需要能对服务的上下线自动感知,并且根据这个变化去更新服务地址数据,形成新的地址列表后,把数据传给需要数据的调用者或者消息的发送者和接收者。
7.2 软负载中心的结构
7.5 软负载中心的数据分发的特点和设计
7.5.1 数据分发与消息订阅的区别
7.5.2 提升数据分发性能需要注意的问题
要提升数据分发性能,可以从下面两个方面考虑。
- 数据压缩
我们的数据都是和服务相关的信息,数据压缩可以很好地降低数据量,提升网络吞吐能力,使用CPU来换宽带,这对于软负载中心还是非常有用的。而且因为很多服务的订阅集群不止一个,每个集群中的机器也不止一个,所以一份数据需要投递的目标是很多的,压缩一次所带来的流量下降是很明显的。所以数据压缩是一定要考虑的方面。
- 全量与增量的选择
每次传递全量数据,整体的设计和逻辑会非常简单,缺点是传送的数据量大。而传递增量数据,每次传送的数据量小,但是逻辑会复杂很多。建议在刚开始的实现中采用简单的方式,也就是传送全量数据,当全量的数据很大时,就需要考虑采用增量传送的方式来实现了。
7.6 针对服务化的特性支持
7.6.1 软负载数据分组
我们了解了数据的分组,通过数据标识和分组来唯一确定数据。那么,为什么要引入分组呢?分组主要是为了进行隔离,分组本身就是一个命名空间,用来把相同的dataId的内容分开,也就是给dataId加上了一个namespace。分组主要用在下面两种场景。
- 根据环境进行区分
这比较多地用于线下的环境。我们在线下开发、测试的环境中,需要对不同的环境、项目进行隔离和区分,而分组就可以很好地支持这一功能。可以对不同组的服务提供者和调用者进行隔离,使之互不可见。
- 分优先级的隔离
这更多用于线上运行系统的隔离。也就是可以把提供同样服务的提供者用组的概念分开,重要的服务使用者会有专有的组来提供服务,而其他的服务使用者可能会公用一个默认的组。
海康威视公司福利 1139人发布
