在Spring Cloud Stream中使用Solace Binder

时间:2019-08-29 09:20:28

标签: spring-cloud-stream solace

我们刚开始将Spring Cloud Stream与Solace Binders结合使用,并且正在做一个小型POC。

应用程序将消息发布到两个主题- T_TENNIS_OUT T_HOCKEY_OUT

我们有一个队列- Q_GAME_DATA ,该队列同时订阅了主题T_TENNIS_OUT和T_HOCKEY_OUT。

我们需要编写一个使用者以从队列中读取消息。 所用的慰藉粘合剂的配置如下。

 spring:
  cloud:
    stream:
      bindings:
        CHANNEL_GAME:
          destination: Q_GAME_DATA
          group: ????
          binder: local_solace
      binders:
        local_solace:
          type: solace

我们不清楚,正在寻找以下问题的答案-

  • 我们应将Solace配置中的哪些信息映射到组: ??
  • 我们需要拥有多个CHANNEL_GAME1和CHANNEL_GAME2之类的绑定文件,而不是只有1个通道CHANNEL_GAME吗?
  • 我们还需要在绑定文件中为使用者提供主题名称或主题订阅详细信息吗?

1 个答案:

答案 0 :(得分:0)

  1. 我们应将Solace配置中的哪些信息映射到组:??

我认为您已经做的是您已经在Solace Event Broker上预先设置了队列,并向其中添加了必要的主题订阅。

但是,队列名称通常具有{prefix}{destination}.{group}的格式。 https://github.com/SolaceProducts/solace-spring-cloud/tree/master/solace-spring-cloud-starters/solace-spring-cloud-stream-starter在“ Solace Binder配置选项”下也提到了这一点。

因此,请确保在Solace Event Broker上创建的队列的名称遵循{prefix}{destination}.{group}的格式。完成后,请相应地将队列名称的相应部分映射到Solace配置文件中。另外,由于队列已在Solace Event Broker上预先设置,请在Solace配置文件中将provisionDurableQueue设置为false。

  1. 我们需要拥有多个CHANNEL_GAME1和CHANNEL_GAME2之类的绑定文件,而不是只有1个通道CHANNEL_GAME吗?

根据您的用例说明,无需在Solace配置文件中声明多个通道。即使只有一个通道,您仍然可以让使用者使用队列中的消息。

  1. 我们还需要在绑定文件中为使用者提供主题名称或主题订阅详细信息吗?

如果必要的主题订阅已被添加到预先设置的队列中,则无需将主题订阅添加到Solace配置文件中。

此外,还需要在Solace配置文件中将provisionSubscriptionsToDurableQueue设置为false。如果不这样做,那么将在Solace配置文件中的destination中指定的值作为主题订阅添加到队列中。