我应该在基于 HornetQ 的应用程序中只使用一个会话吗?

2023-12-01

在基于HornetQ引擎的应用程序中,我打算创建多个生产者和消费者。 我了解到,我应该尽可能地重用资源,这要归功于这一页.

这是否意味着,对于我的应用程序,我应该创建一个且恰好一个 ConnectionFactory、一个 Connection、一个 Session,然后(使用此 Session 对象)创建所需数量的生产者/消费者?

这应该不难,但我不确定这是否是正确的方法。


最小资源使用的最佳经验法则是使用尽可能少的构造,同时保持线程安全。因此:

  1. 连接工厂是线程安全的:每个 JMS 服务器一个(或者主题和队列的每个目标类型每个 JMS 服务器一个)
  2. 连接是线程安全的:根据应用程序体系结构,您也许可以使用一个连接,但我不会竭尽全力来做到这一点。
  3. 会话和会话下面的所有构造都是NOT线程安全:每个并发线程(或者如果您这样考虑的话,每个事务)将需要一个会话。

基于此,希望您能够在优雅的架构和低资源利用率之间取得平衡。

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

我应该在基于 HornetQ 的应用程序中只使用一个会话吗? 的相关文章

随机推荐

  • Firebase 部署错误:构建失败:npm ERR!代码EUSAGE

    我目前正在使用 Firebase 托管 但突然遇到部署错误 我尝试了所有可能的解决方案 但部署错误多次出现 所以现在需要社区的帮助 请帮我解决这个问题 从这条线上部署过程失败 i functions updating Node js 16
  • 主源文件中的结构值未更新

    我的项目的一部分 一些源文件是button key h button key h lcd h mani c etc 在按钮 key H 中使用了一个结构并声明为 struct menu uint8 t Hour uint8 t Minute
  • 拦截列表总体以在反序列化中分配值

    我有一个递归类 树层次结构 它派生自一个列表 该列表具有子级及其自身 通过 JSON NET 中的反序列化填充 TLDR 版本是 我想在该类存在的每个级别上从父级填充子级中的变量 而不使用 JSON NET 中的 ref 变量 存储到 co
  • 如何从R中UNC指定的目录中读取文件?

    是否可以从 UNC 指定的目录中读取文件R 我想在不使用基本安装之外的任何软件包的情况下完成此操作 UNC 名称工作正常 您只需正确转义它们即可 这对我有用 read csv COMPUTER Directory file txt
  • 我如何在 QMake 中包含 python.h

    INCLUDEPATH L usr include python2 7 LIBS usr local lib python2 7 QMAKE CXXFLAGS usr local lib python2 7 error cannot fin
  • C++程序与MySQL数据库通信

    有谁知道 C 程序直接与 MySQL 数据库通信的简单方法吗 我查看了 MySQL 发现它非常令人困惑 如果有人知道一个非常简单的方法 请告诉我 Thanks 附 我正在 Windows 机器上进行开发 PHP 和 MySQL Web 应用
  • LINQ Intersect 不返回项目

    我已经为我的自定义类实现了一个比较类 以便我可以使用Intersect在两个列表中 StudentList1 and StudentList2 但是 当我运行以下代码时 我没有得到任何结果 Student class CompareStud
  • awk 要求合并两个文件

    我通过 AWK 命令使用 Same Key 组合了两个不同的文件 如果与 File1 和 File2 相比没有关键匹配 则只需 把 t t t 代替 我有以下 AWK 命令 awk F t key 1 NR 1 header key key
  • 为什么不能将 Dictionary> 转换为 Dictionary>?

    我想知道为什么我不能直接进行强制转换 我有一个模糊的想法 这可能与协 逆变的东西有关 我是否被迫按顺序将第一个字典的元素复制到新的字典中得到我想要的类型 你不能这样做 因为它们不是同一类型 考虑 var x new Dictionary
  • 不使用模式名称访问表

    我是 DB2 新手 如果不使用架构名称 我无法从表中获取数据 如果我使用带有表名的模式名称 我就可以获取数据 Example SELECT FROM TABLE NAME 它给了我错误 同时 SELECT FROM SCHEMA NAME
  • 如何在Python OpenCV中获取轮廓的x,y位置

    我试图从下图中获取轮廓的 x 和 y 位置 但我搞砸了 图片 我只需要找到轮廓的 x 和 y 位置或轮廓的中心 当我从 GIMP 手动查找它们的位置时 结果将类似于以下内容 290 210 982 190 570 478 我相信可以用 cv
  • 从 C# 调用非托管 C++ 库 (dll) 会产生访问冲突错误 (0xc0000005)

    抱歉问了这么长的问题 我只是想包括我目前所知道的有关该问题的所有信息 我正在使用 Visual Studio 2008 用 C 创建一个 Windows 窗体程序 该程序调用用 C 编写的库 C DLL 分析由多个样本组成的测量数据 样本通
  • 使用php脚本将多个doc或rtf文件合并为一个doc或rtf文件

    我想将多个 doc 或 rtf 文件合并到一个文件中 该文件应该与多个文件的格式相同 我的意思是 如果用户从列表框中选择多个 rtf 模板文件并单击网页上的按钮 则输出应该是组合多个 rtf 模板文件的单个 rtf 文件 我应该使用 php
  • 使用 TypeScript 将箭头函数分配给泛型函数类型

    我已经对类似问题进行了一些挖掘 但找不到有效的解决方案 我有一些类型的通用函数 但我似乎无法正确实现它们 简而言之 我有这个 Takes three values of the same type and collapses them in
  • Visual Studio 2010 无法加载导入了 元素的项目

    我们有一个大型 约 800 个单独的项目 系统 我们正在将其从旧的构建系统迁移到 Visual Studio 2010 在过去的几周里 我们为每个项目手动创建了 Visual Studio 项目文件 vcxproj 格式 我们可以仅使用 M
  • UnreachableBrowserException:无法启动新会话。可能的原因是 Selenium Grid 远程服务器的地址无效

    打开新驱动程序窗口时出错 org openqa selenium remote UnreachableBrowserException Could not start a new session Possible causes are in
  • 无法在 Keras 中使用 VGG19 预测单个图像的标签

    我正在根据 本教程 使用迁移学习方法在 Keras 中使用经过训练的 VGG19 模型https towardsdatascience com keras transfer learning for beginners 6c9b8b7143
  • 如何在页面加载时显示运行进度条

    我想在页面加载时显示运行进度条像这儿 在我的页面中 我在示例中使用了一个简单的加载图像 但我想在运行进度栏中将其转换 这是我的代码 window load function alert hi loading hide loading wid
  • 从字符串返回数字

    我正在尝试提取下面字符串中 Humans 的 Number 例如 string lt c ProjectObjectives Objectives NA PublishDate PublishDate NA DeploymentID Dep
  • 我应该在基于 HornetQ 的应用程序中只使用一个会话吗?

    在基于HornetQ引擎的应用程序中 我打算创建多个生产者和消费者 我了解到 我应该尽可能地重用资源 这要归功于这一页 这是否意味着 对于我的应用程序 我应该创建一个且恰好一个 ConnectionFactory 一个 Connection