Spring 云流 RabbitMq - 从源代码设置属性

Spring cloud stream RabbitMq - Set properties from source code

我正在使用 Spring 云流和 RabbitMQ。

我希望能够从源代码而不是 属性 文件(正如他们在文档中提到的那样)配置消息和查询属性。

例如,对于 RabbitMq 的经典 Java 客户端,我可以做类似的事情来创建一个具有我想要的属性的队列:

                    //qName,    passive, durable, exclusive  auto-delete
channel.queueDeclare("myQueue", true,    false,   false,   , false       , null);

关于如何使用 Spring 云流实现同样的事情有什么想法吗?

在 "application.yml" 中您可以添加所有这些值,以下是示例

spring:
  cloud:
    stream:
      instance-count: 1
      bindings:
        input:
          consumer:
            concurrency: 2
            maxAttempts: 1
          group: geode-sink
          destination: jdbc-event-result
          binder: rabbit
      rabbit:
        bindings:
          input:
            consumer:
              autoBindDlq: true
              republishToDlq: true
              requeueRejected: false

rabbitmq:
    username: ur-user-name
    password: ur-password
    host: rabbitmq-url-replace-here
    port: 5672
datasource:
  platform: mysql
  url: jdbc:mysql-url-replace-here
  username: ur-user-name
  password: ur-password
  driverClassName: com.mysql.jdbc.Driver

  datasource:
    tomcat:
      max-wait:  300
      min-idle: 10
      max-idle: 100

aggregator:
  groupCount: 2
  batchSize: 1000
  batchTimeout: 1000

已更新:

在查阅他们的文档并在@vaquar khan 的帮助下,我发现唯一的方法是从您的 属性 文件中获取。

application.yml

spring:
  cloud:
    stream:
      bindings:
        queue_name :
          destination: queue_name
          group: your_group_name 
          durable-subscription : true

这将声明一个持久的、非删除的和非独占的队列。