可持久化发布-订阅支持
应用程序之间的通信遵循发布-订阅模型,在此模型中,数据通过共享的主题进行广播。 这在以下图中可以看得到,该图显示了一组交互式 Spring Cloud Stream 应用程序的典型部署。
图 1. Spring Cloud Stream 发布 - 订阅
传感器上报到HTTP端点的数据会被发送到一个名为 raw-sensor-data 的公共目的地。
从该目的地,数据会由一个微服务应用程序独立处理,该应用程序计算时间窗口平均值,另一个微服务应用程序将原始数据写入HDFS(Hadoop分布式文件系统)。
为了处理数据,两个应用程序在运行时都将该主题声明为它们的输入。
发布-订阅通信模型可以减少生产者和使用者的复杂性,并允许在不影响现有流程的情况下添加新应用程序。 例如,在平均值计算应用程序下游,您可以添加一个用于计算显示和监视最高温度值的应用程序。 然后,您可以添加另一个应用程序来解释相同的平均值流进行故障检测。 通过共享主题而不是点对点队列执行所有通信来减少微服务之间的耦合。
虽然发布-订阅消息的概念并不新鲜,但Spring Cloud Stream为其应用程序模型增添了更明确的选择。 通过使用原生中间件支持,Spring Cloud Stream也简化了在不同平台上的发布-订阅模型的使用。