
2
|
第
1
章
1.1.1
如何开始
发布与订阅消息系统的大部分应用场景都是从一个简单的消息队列或一个进程间通道开始
的。例如,你的应用程序需要往别处发送监控信息,可以直接在你的应用程序和另一个可
以在仪表盘上显示度量指标的应用程序之间建立连接,然后通过这个连接推送度量指标,
如图
1-1
所示。
前端
服务器
前端
服务器
应用程序
度量指标
应用程序
度量指标
度量指标
服务器
图 1-1:单个直连的度量指标发布者
这是刚接触监控系统时简单问题的应对方案。过了不久,你需要分析更长时间片段的度量
指标,而此时的仪表盘程序满足不了需求,于是,你启动了一个新的服务来接收度量指
标。该服务把度量指标保存起来,然后进行分析。与此同时,你修改了原来的应用程序,
把度量指标同时发送到两个仪表盘系统上。现在,你又多了
3
个可以生成度量指标的应用
程序,它们都与这两个服务直接相连。而你的同事认为最好可以对这些服务进行轮询以便
获得告警功能,于是你为每一个应用程序增加了一个服务器,用于提供度量指标。再过一
阵子,有更多的应用程序出于各自的目的,都从这些服务器获取度量指标。这时的架构看
起来就像图
1-2
所示的那样,节点间的连接一团糟。
前端
服务器
前端
服务器
数据库
服务器
数据库
副本
聊天
服务器
购物车
后端
服务器
度量
用户界面
指标分析
活动监控
数据库
监控器
图 1-2:多个直连的度量指标发布者
这时,技术债务开始凸显出来,于是你决定偿还掉一些。你创建了一个独立的应用程序,
用于接收来自其他应用程序的度量指标,并为其他系统提供了一个查询服务器。这样,之
前架构的复杂度被降低到图 ...