use*_*134 5 azureservicebus spring-boot
我参考此示例来使用Azure服务总线 https://github.com/Microsoft/azure-spring-boot/tree/master/azure-spring-boot-samples/azure-servicebus-spring-boot-sample
我能够让示例正常工作,没有任何问题。
1-作为它的扩展,我现在在同一服务总线命名空间中创建了多个队列。我想读取消息并将其发布到每个队列。通过 azure-servicebus-spring-boot-starter 项目,我如何指定要使用的多个队列。
2-我想每 10 秒听一次队列。对于同样的情况,我在 sprint 启动应用程序中启用了调度。在每 10 秒调度一次的组件方法中,现在我正在注册消息处理程序。
queueClient.registerMessageHandler(new MessageHandler(),options);
Run Code Online (Sandbox Code Playgroud)
重复注册会有问题吗?如果是这样,如何编码相同。
谢谢
当您有多个队列时,您将无法使用自动配置属性来获取队列客户端,而是必须创建 @Configuration 类,然后为每个队列名称创建一个客户端;例如。,
@Bean
public QueueClient queueName1(@Value("connection-string") String connectionString, @Value("queueName1") String queueName) {
...
return new QueueClient(new ConnectionStringBuilder(connectionString, queueName),
ReceiveMode.PEEKLOCK);
...
}
@Bean
public QueueClient queueName2(@Value("connection-string") String connectionString, @Value("queueName2") String queueName) {
...
return new QueueClient(new ConnectionStringBuilder(connectionString, queueName),
ReceiveMode.PEEKLOCK);
...
}
Run Code Online (Sandbox Code Playgroud)
然后在您的服务代码中,引用
@Qualifier("queueName1") QueueClient queueClient1;
@Qualifier("queueName2") QueueClient queueClient2;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2026 次 |
| 最近记录: |