通过用于Spring Cloud Stream的Solace绑定器支持直接的,非持久的消息传递

时间:2019-06-03 14:02:17

标签: spring-cloud-stream solace

我有一个仅充当消息发布者的Spring Boot 2应用程序和另一个仅充当消息使用者的Spring Boot 2应用程序。

由于每条消息代表一个非关键事件通知,因此不一定要确保消费者应用程序会接收来自生产者的每条消息,因此我想使用以下设置:

  • 生产者将消息发布到非持久主题
  • 消费者在启动时订阅了非持久性主题,并在关闭时取消订阅了

研究配置选项时,我尝试定义带有或不带有使用者组的输入目标(spring.cloud.stream.bindings.input.destination),结果如下:

  • 与消费群体: 功能不匹配:路由器不支持持久的端点管理。

  • 没有消费群: 功能不匹配:路由器不支持保证的订户流量。

这两个选项的异常都表明持久/有保证的目标绑定,这不是我所追求的。

我的问题是Spring Cloud Stream的Solace绑定器是否支持非持久方案?

如果SCS活页夹不支持,我可以使用Solace JMS达到我的目的吗?

2 个答案:

答案 0 :(得分:0)

您可以从我们的网站上看到Solace活页夹是partner maintained,所以我会考虑直接提出一个问题with them

答案 1 :(得分:0)

我相信您有两种选择:

  1. 没有指定消费者组的Solace Spring Cloud Streams绑定程序将创建一个临时队列,该临时队列已订阅您感兴趣的主题。这是您的SCS应用程序绑定的位置。该队列仅在客户端会话期间存在,因此在您的应用关闭后将被删除。但是,当您的应用仍处于运行状态时,使用该队列可带来额外的好处,即在网络反弹期间消息不会丢失,或代理的HA故障转移(如果为HA配置)。请注意,由于队列是确保和平的保证端点,因此需要配置代理和客户端配置文件以确保交付。现在已经为大多数代理配置了此功能,但是您要确保选中客户机选项中的以下选项:“保证端点创建”,“保证消息接收”和“保证消息发送”

  2. 如果第一个选项对您不起作用,那么您可以使用JMS创建主题订阅是正确的。这里还有一些选择-您可以使用Solace的Spring Boot Autoconfig,您可以在以下位置找到它们:https://github.com/SolaceProducts/solace-jms-spring-boot,或者如果您更喜欢创建自己的JMS工件,可以在“接收”中找到有关如何执行此操作的示例。消息”部分:https://solace.com/samples/solace-samples-jms/publish-subscribe/