gpt4 book ai didi

rabbitmq - 通过 Spring 云流或 rabbitmq 服务器配置将默认交换类型更改为扇出

转载 作者:行者123 更新时间:2023-12-02 17:09:34 25 4
gpt4 key购买 nike

我有两个微服务学生和老师

在 Student 微服务中,我为交换 XYZ 创建了 MessageSink

@Input("XYZ")
SubscribableChannel xyz();

在 Teacher 微服务中,我将交换 XYZ 配置为扇出

应用程序属性

 spring.cloud.stream.rabbit.bindings.XYZ.producer.exchangeType=fanout
spring.cloud.stream.bindings.XYZ.contentType=application/json

但我在这里面临的问题是学生服务在教师服务之前启动,并且正在创建类型为主题的 XYZ 交换。

为了解决这个问题,我在两个服务(即消费者和生产者)中都添加了 exchangeType。随着服务数量的增加,这些配置的数量也在增加。

我想将默认的 exchangeType 更改为 fanout,所以下面是几个问题。

  1. 有什么方法可以将 spring-cloud-stream 中的默认 exchangeType 更改为扇出而不是主题?
  2. 有什么方法可以通过 rabbit-mq 配置更改默认的 exchangeType 吗?
  3. 作为解决方案,我计划将 exchangeType 保留为 topic 和路由键 #。但这种方法的问题是 stomp 客户端正在为每个浏览器主机创建队列,队列名称为 stomp-subscription-randomString 和空白路由键。那么有没有办法在订阅流的同时提供路由 key 呢?我正在使用 /exchange/exchangeName 作为交换 URL

最佳答案

有一些关于此事的文档:https://docs.spring.io/spring-cloud-stream/docs/Elmhurst.RELEASE/reference/htmlsingle/#_configuration_options_4

您可以考虑使用此选项:

exchangeType

The exchange type: direct, fanout or topic for non-partitioned destinations and direct or topic for partitioned destinations.

Default: topic.

因此它在我们的配置中看起来像:

spring.cloud.stream.rabbit.bindings.XYZ.consumer.exchangeType=fanout

还有一些其他选项,例如:declareExchange=falsebindingRoutingKey 也需要考虑。

关于rabbitmq - 通过 Spring 云流或 rabbitmq 服务器配置将默认交换类型更改为扇出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49922878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com