gpt4 book ai didi

java - Azure 服务总线中的 ServiceBusSenderClient 和 ServiceBusSenderAsyncClient 有什么区别?

转载 作者:行者123 更新时间:2023-12-03 04:52:47 33 4
gpt4 key购买 nike

我想知道 Azure 服务总线中 SenderClient 和 AsynSenderClient 之间的区别。下面两个代码片段有什么区别?

代码片段 1:

ServiceBusSenderClient sender = new ServiceBusClientBuilder()
.connectionString("<< CONNECTION STRING FOR THE SERVICE BUS NAMESPACE >>")
.sender()
.queueName("<< QUEUE NAME >>")
.buildClient();

代码片段 2:

ServiceBusSenderAsyncClient sender = new ServiceBusClientBuilder()
.connectionString("<< CONNECTION STRING FOR THE SERVICE BUS NAMESPACE >>")
.sender()
.queueName("<< QUEUE NAME >>")
.buildAsyncClient();

最佳答案

  • ServiceBusClientBuilder 用于创建 ServiceBusSenderClient 实例。调用 buildClient() 方法来构建客户端。生成的 sender 变量的类型为 ServiceBusSenderClient,它提供了同步编程模型,用于将消息发送到由 指定的服务总线队列队列
  • 当您使用 ServiceBusSenderClient 发送消息时,调用线程将被阻塞,直到发送消息并从 Service Bus 服务收到响应。

如果您使用 Maven 依赖项,请按如下所示进行检查。

依赖关系:

<dependencies>
<!-- Azure Messaging Service Bus -->
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-messaging-servicebus</artifactId>
<version>7.7.0</version>
</dependency>

<!-- Azure Identity -->
<dependency>
<groupId>com.azure.identity</groupId>
<artifactId>azure-identity</artifactId>
<version>1.3.1</version>
</dependency>

<!-- Azure Core -->
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-core</artifactId>
<version>1.17.0</version>
</dependency>

<!-- Azure Logging Dependencies (optional) -->
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-core-logger-slf4j</artifactId>
<version>1.17.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.32</version>
</dependency>
</dependencies>

在这里您可以探索更多适合您需求的内容。<强> ServiceBusSenderClient

这是异步方法:

  • ServiceBusSenderAsyncClient 是一个异步客户端,它提供用于向服务总线实体发送消息的非阻塞方法。

  • 在 Java 中,ServiceBusSenderAsyncClient 类扩展了 java.lang.Object 类,后者是类层次结构的根。这意味着 ServiceBusSenderAsyncClient 将继承 java.lang.Object 类提供的基本功能,例如 toString()hashCode ()equals() 方法。

我尝试使用 ServiceBusSenderAsyncClient 类向示例应用程序异步发送消息到服务总线实体。对于上面的依赖项检查。

import com.azure.messaging.servicebus.ServiceBusSenderAsyncClient;
import com.azure.messaging.servicebus.ServiceBusMessage;

public class ServiceBusSenderExample {
public static void main(String[] args) {
// Create an instance of the ServiceBusSenderAsyncClient
ServiceBusSenderAsyncClient senderClient = new ServiceBusSenderAsyncClient("<connectionString>", "<queueOrTopicName>");

// Create a message
ServiceBusMessage message = new ServiceBusMessage("Hello, Service Bus!");

// Send the message asynchronously
senderClient.sendMessage(message).subscribe(
messageId -> {
System.out.println("Message sent successfully. MessageId: " + messageId);
},
error -> {
System.err.println("Error occurred while sending the message: " + error);
},
() -> {
System.out.println("Message sending complete.");
}
);
}
}
  • 非阻塞行为并且想要利用异步编程的好处,可以使用ServiceBusSenderAsyncClient请查看链接以获取更多信息。

关于java - Azure 服务总线中的 ServiceBusSenderClient 和 ServiceBusSenderAsyncClient 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76677763/

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