Azure 服务 TopicClient 线程安全且可重用吗?

2024-02-12

我们正在使用 Azure SDK 将消息发布到服务总线。 在 Web API 调用中,我们对每个传入请求重复执行这些任务

MessagingFactory factory = MessagingFactory.CreateFromConnectionString(conStr);
factory.RetryPolicy = new RetryExponential(TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(2), 3);
var namespaceManager = NamespaceManager.CreateFromConnectionString(conStr);

TopicClient topicClient = factory.CreateTopicClient(topicName);

topicClient 可以转换为 Singleton 并在多个线程中重用吗?


topicClient 可以转换为 Singleton 并在多个实例之间重用吗 线程?

是的,这是推荐的做法。从Best Practices for performance improvements using Service Bus Messaging https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-performance-improvements#reusing-factories-and-clients

服务总线客户端对象,例如 QueueClient 或 MessageSender, 通过 MessagingFactory 对象创建,该对象还提供 连接的内部管理。您不应该关闭消息传递 发送后,工厂或队列、主题和订阅客户端 消息,然后在发送下一条消息时重新创建它们。 关闭消息传递工厂会删除与服务总线的连接 服务,并在重新创建时建立新连接 工厂。建立连接是一项昂贵的操作,您需要 可以通过为多个重复使用相同的工厂和客户端对象来避免 运营。您可以安全地使用 QueueClient 对象进行发送 来自并发异步操作和多线程的消息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure 服务 TopicClient 线程安全且可重用吗? 的相关文章

随机推荐

  • 是否可以使用 sha1 和 sha256 证书对安装程序和卸载程序进行双重签名?

    Inno Setup 中是否可以同时使用 sha1 和 sha256 对卸载程序和安装程序进行签名 我知道它是可以签署 https stackoverflow com a 30671378 1329977通过命令工具具有两个证书的可执行文件
  • 如何解决 Gradle 构建中的存储库证书错误

    我安装了最新版本的android studio 我已经安装了jdk 8 当我打开 android studio 时 出现以下错误 Unable to resolve dependency for app debugUnitTest comp
  • 动画背景java游戏

    我正在编写一个类似于小行星的游戏 但我不明白如何在后台生成小行星 现在我在主类中生成了一个小行星 但我想为小行星创建一个类 我该怎么做 主班 public void paintComponent Graphics g super paint
  • 使用鼠标在 openGL 中移动绘图

    我试图在按住鼠标左键的同时在 openGL 中移动图像 我不想拖动物体 只是移动整个图片 它是分形的二维绘图 我被告知我可以使用 gluortho2d 但我找不到任何信息或类似的尝试如何做到这一点 我假设类似的事情 void mouse c
  • log4j休眠错误

    配置休眠时出现此错误 log4j WARN No appenders could be found for logger org hibernate cfg annotations Version log4j WARN Please ini
  • 如何将 Groovy 类导入 Jenkinsfile?

    如何在 Jenkinsfile 中导入 Groovy 类 我尝试了几种方法 但没有一个有效 这是我要导入的类 Thing groovy class Thing void doStuff 这些是行不通的事情 Jenkinsfile 1 nod
  • 如何在 application.yaml 中设置 logback.xml 属性

    I have logback xml像这样
  • 将小数字加载到 64 位 x86 寄存器中

    在 64 位 x86 CPU 下 通常我们将数字 1 加载到寄存器中 如下所示 mov rdx 1 48BAFFFFFFFFFFFFFFFF 该指令按照旧版本 NASM 的组装方式占用 10 个字节 另一种方法是 xor rdx rdx 4
  • MySQL服务器和MySQL客户端有什么区别

    在 Ubuntu 中 我通常安装两者 但是 MySQL 的客户端和服务器之间有什么区别 另外 当一个新的声明提到它需要 MySQL 5 x 时 它是指客户端 服务器还是两者都需要 例如这个链接https dev mysql com doc
  • 如果我在打字稿中使用 `module("somelib")`,它就无法在浏览器中运行

    我正在尝试在客户端使用带有 angularjs 的打字稿 我发现如果我使用外部模块 生成的js将无法在浏览器中运行 控制器 ts
  • 如何检查 ECMAScript 6 类和函数之间的差异?

    在 ECMAScript 6 中typeof根据规范 类的数量是 function 但是 根据规范 您也不允许将通过类语法创建的对象作为普通函数调用来调用 换句话说 您必须使用new关键字 否则会抛出 TypeError TypeError
  • iPad 上的 Swift Playgrounds 全屏显示

    尝试在 iPad 上创建一个全屏显示的 Swift Playground 我尝试使用获取屏幕的边界UIScreen main bounds 但显示对于默认的游乐场框架来说太大了 我知道这是可能的 因为所有示例游乐场都是全屏的 我只是不明白它
  • 通过命令行获取制表符大小

    是否有一种自动方法来检索 matlab 编辑器和命令窗口的选项卡大小 是的 您可以打开首选项窗口并自行查找 但我希望它是自动化的 实际上我认为这可以推广到检索any下面的屏幕截图中显示了这些用户偏好 我很快找到了解决方案 经过深思熟虑后 最
  • C++ 创建 Windows 屏幕保护程序

    我使用 OpenGL 和 SDL 在 C 中创建了一个动画 它不使用 Windows 库 并希望将其用作 Windows 系统的屏幕保护程序 我读过一个例子 它描述了你只需更改 exe延伸至 scr 我已经这样做了并将动画作为屏幕保护程序运
  • 如何使用 php echo 显示长轮询结果

    我正在使用一个长轮询脚本 如果我附加任何文本进行测试 该脚本可以很好地工作 现在我想显示 user php 从数据 update php 收集的长轮询结果 我在 user php 页面使用了我的轮询脚本 在这里 如果我使用如下的 测试轮询
  • 作为另一个用户安装共享文件夹(vbox)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 很抱歉在这里问这个问题 但我尝试了服务器故障 但 4 天都没有得到任何答复 那里的相关问题 https serverfault com questio
  • ASP.Net 5 类库包项目中的 dnxcore50 框架支持吗?

    我正在尝试开发我的第一个 ASP Net Web 应用程序 在我的解决方案中我有两个项目 AWeb Application and Class Library Package 并注意到 Web 应用程序的框架中有这个project json
  • 如何在 Dockerfile 中指定 ENTRYPOINT 的工作目录

    Docker 映像 基于 Windows 包含一个应用程序目录 位于C App 该目录内有几个子文件夹和文件 包括一个名为process bat Dockerfile 用于构建镜像 的结尾如下 ENTRYPOINT C App proces
  • DataGridView 可调整列大小,但最后一列无法调整得更大?

    For c 0 To grd Columns Count 1 grd Columns c Resizable DataGridViewTriState True Next c 这使得我的 DataGridView 中的所有列都可以调整大小
  • Azure 服务 TopicClient 线程安全且可重用吗?

    我们正在使用 Azure SDK 将消息发布到服务总线 在 Web API 调用中 我们对每个传入请求重复执行这些任务 MessagingFactory factory MessagingFactory CreateFromConnecti