
88 |
第
3
章
点是,源数据和接收器数据在发布到主题或受到该主题到被使用之前,都可
能需要某种形式的处理。出于这个原因,队列只向处理器作出承诺。因为队
列不能代表提供流交互所需的处理器做出承诺,所以它没有直接向生产者或
消费者做出承诺。
类似地但可能更具争议的是,接口只向处理器承诺发布和订阅事件的机制。
大多数队列产品都有发布和订阅接口(例如
NAT
、
Kafka
和
RabbitMQ
),那
么为什么不能对队列也做出这样的承诺呢?我的观点是,这些相同的产品提
供了一些内置处理来获取排队数据,并为流交互创建适当的事件协议,因此
总是涉及到处理器。然而,如果你对这个决定感到不舒服,我可以理解,并
欢迎你尝试构建另一种承诺模型。
3.3.5
最后一块
我们几乎完成了我们的地图,但我还想再添加一个元素,这是上面列出的许
多组件中都需要的。这一要素是基础设施,使上述服务和技术成为可能所需
的算力、存储和网络组件。
基础设施包括许多不同形式的硬件和软件,包括服务器、存储设备、网络设备、
网络协议、操作系统等。其中物理连接是逻辑连接的必然结果,也包含在该
组件中。其基础设施还包括这些技术所依赖的非计算的内容,如数据中心房
地产、电力、电信提供商等。然而,鉴于我们研究的范围,我认为这些细节
与我们对流集成的评估不太相关。所以,我们将把所有这些东西都整合到一
个元素中,如图
3-14
所示。
我已经确定了一个针对我们价值链中几个组成部分的承诺,即供货量和商品
服务。容量是执行各种计算任务所需的时间和资源,而商品服务是许多流交
互任务所需的共享计算能力,如数据存储、资源编排等。 ...