首页 > 其他分享 >【Azure Service Bus】使用Spring Cloud integration示例代码,为多个 Service Bus的连接使用 ConnectionString 方式

【Azure Service Bus】使用Spring Cloud integration示例代码,为多个 Service Bus的连接使用 ConnectionString 方式

时间:2023-09-03 18:33:37浏览次数:55  
标签:Service 示例 spring Bus azure servicebus com

问题描述

查看Service Bus的Java示例代码,发现使用Spring Cloud Integration,配置 Application.yaml 可以连接到两个Service Bus。 但代码中没有使用Connection String 属性配置服务连接。

【Azure Service Bus】使用Spring Cloud integration示例代码,为多个 Service Bus的连接使用 ConnectionString 方式_spring

 

那么,是否可以直接在此添加 connection-string配置后,不用修改代码就可以连接到Service Bus服务呢?

 

问题解答

在解答这个问题之前,需要查看示例代码中,是如何来使用application.yaml中的属性值。

1) 自定义 CustomizedServiceBusProperties 对象,结构化 应用的属性配置

2) 在 MultipleAzureServiceBusNamespacesConfiguration  中读取配置,并调用 com.azure.spring.messaging.servicebus.core.DefaultServiceBusNamespaceProcessorFactory 构造函数

【Azure Service Bus】使用Spring Cloud integration示例代码,为多个 Service Bus的连接使用 ConnectionString 方式_java_02

 

接下来,就需要查看com.azure.spring.messaging.servicebus.core.DefaultServiceBusNamespaceProcessorFactory的构造函数是否可以使用connction string属性初始化 Service Bus Processor对象。

查看 DefaultServiceBusNamespaceProcessorFactory 类的介绍文档:https://azuresdkdocs.blob.core.windows.net/$web/java/spring-messaging-azure-servicebus/4.1.0/com/azure/spring/messaging/servicebus/core/DefaultServiceBusNamespaceProcessorFactory.html#createProcessor(java.lang.String,com.azure.spring.cloud.service.listener.MessageListener,com.azure.spring.cloud.service.servicebus.consumer.ServiceBusErrorHandler)


构造函数由 NamespaceProperties 类传递参数, 它拥有GetConnectionStrng方法可以直接读取connection-string属性值


getConnectionString
public String getConnectionString()

Specified by:
getConnectionString in interface com.azure.spring.cloud.core.provider.connectionstring.ConnectionStringProvider

Specified by:
getConnectionString in interface com.azure.spring.cloud.service.implementation.servicebus.properties.ServiceBusClientCommonProperties

 

根据以上分析,如果需要Spring Cloud Integration示例代码使用连接字符串(Connection String) 初始化 Service Bus对象,只要在Application.yaml 文件中使用connection-string并设置正确的值就可以。

my.servicebus.namespaces[0]:
  connection-string: {AZURE_SERVICEBUS_CONNECTION_STRING_01}
  entity-type: queue
  entity-name: {AZURE_SERVICEBUS_NAMESPACE_01_QUEUE_NAME}
my.servicebus.namespaces[1]:
  connection-string: {AZURE_SERVICEBUS_CONNECTION_STRING_02}
  entity-type: queue
  entity-name: {AZURE_SERVICEBUS_NAMESPACE_02_QUEUE_NAME}

 

参考资料

Sending and Receiving Message by Azure Service Bus (Multiple Namespaces) And Spring Integration in Spring Boot Application :https://github.com/Azure-Samples/azure-spring-boot-samples/tree/main/servicebus/spring-cloud-azure-starter-integration-servicebus/multiple-namespaces

Class DefaultServiceBusNamespaceProcessorFactory : https://azuresdkdocs.blob.core.windows.net/$web/java/spring-messaging-azure-servicebus/4.1.0/com/azure/spring/messaging/servicebus/core/DefaultServiceBusNamespaceProcessorFactory.html

 


当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

标签:Service,示例,spring,Bus,azure,servicebus,com
From: https://blog.51cto.com/u_13773780/7342146

相关文章

  • 【Azure Service Bus】使用Spring Cloud integration示例代码,为多个 Service Bus的连
    问题描述查看ServiceBus的Java示例代码,发现使用SpringCloudIntegration,配置Application.yaml可以连接到两个ServiceBus。但代码中没有使用ConnectionString属性配置服务连接。 那么,是否可以直接在此添加connection-string配置后,不用修改代码就可以连接到ServiceBu......
  • nodejs + superagent 示例记录【2023-09-02】【尝试nodejs接口测试库】
    constsuperagent=require("superagent");(async()=>{ try{  constres=awaitsuperagent.get(   "https://jsonplaceholder.typicode.com/users"  );  constheaderDate=   res.headers&&res.headers.date?......
  • Modbus TCP协议
    Modbus介绍1、起源Modbus通信协议,是一种工业现场总线协议标准。Modbus通信协议具有多个变种,其中有支持串口,以太网多个版本,主要有以下三种:ModbusRTU、ModbusASCII和ModbusTCP优势:免费、简单、容易使用2、分类:(1)ModbusRTU二进制效率高常用运......
  • Flink 1.17教程:wordcount maven工程java代码示例(批、流实现方式)
    批、流实现wordcount代码示例pom.xml<properties><flink.version>1.17.0</flink.version></properties><dependencies><dependency><groupId>org.apache.flink</groupId><......
  • Java代码:flink wordcount代码示例及解读
    WordCountWordCountPojo.java代码packagewordCount;importorg.apache.flink.api.common.functions.FlatMapFunction;importorg.apache.flink.api.common.functions.ReduceFunction;importorg.apache.flink.api.java.DataSet;importorg.apache.flink.api.java.Executio......
  • 『PyQt5-基础篇』| 03 基于PyQt5的第一个应用程序简单示例
    (03基于PyQt5的第一个应用程序简单示例)1导入必须的类需要两个类Application,QWidget;这两个类继承于QtWidgets;Application是应用程序类,QWidget是窗口类;sys模块是应用程序或窗口的参数会用到。importsysfromPyQt5.QtWidgetsimportQApplication,QWidget2创建Appli......
  • BL110支持BACnet IP、Modbus TCP等多种协议转换
    在工业自动化领域,不同的设备和系统通常采用不同的通信协议进行数据交换。为了实现不同设备之间的无缝连接和数据共享,协议转换网关成为了一种关键的工具。BL110是一款功能强大的协议转换网关,能够实现多种协议之间的转换,包括PLC协议、ModbusRTU、ModbusTCP、DL/T645、IEC101、IEC10......
  • go template函数,变量等语法示例
    Go标准库提供了几个package可以产生输出结果,而text/template 提供了基于模板输出文本内容的功能。html/template则是产生安全的HTML格式的输出。这两个包使用相同的接口,但是我下面的例子主要面向HTML应用。解析和创建模板命名模板模板没有限定扩展名,最流行的后缀是.tmpl,vim-go......
  • 钡铼科技打造的BL122:完美集成Modbus与Profinet通信的利器
        钡铼技术BL122协议转换网关是一款专业的设备,用于将Modbus协议转换为Profinet协议。BL122采用了先进的嵌入式ARMMCU和基于LinuxOS系统的开发,具备出色的性能和高度的稳定性。BL122支持多种下行采集方式,包括ModbusRTU、ModbusTCP和ModbusASCII等。通过将这些不同的......
  • ServiceDemo
    增加(Create)@ServicepublicclassUserService{@AutowiredprivateUserRepositoryuserRepository;publicUserDTOcreateUser(UserDTOuserDTO){Useruser=newUser();//将UserDTO的属性设置到User对象中//...user......