jboss 不适用内置日志

现在与HornetQ合作已经快4年了,我认为现在该分享我到目前为止所学的部分知识了。

这篇文章的主要目的不是重写官方文档 ,而是以简单的方式阐明我们在PaddyPower中最常用的概念。

什么是HornetQ

HornetQ是JMS实现。 JMS是一种面向消息的中间件API,用于以异步方式在生产者和使用者之间交换信息。

HornetQ是实现JMS API的众多框架之一。

组态

我们关心的所有HornetQ配置都在1个文件夹中。 那有多美? 该文件夹为hornetq(或在所使用的jboss版本上为hornetq.sar浸入式文件夹 ,您可以在jboss配置文件的deploy文件夹中找到它。

在此文件夹中,我们最多有7个xml配置文件。 我们真的只关心2:

  • hornetq-jms.xmlhornetq-configuration.xml
  • hornetq-jms.xml

在这里,您要为队列,主题和连接工厂定义JNDI名称。

默认情况下,所有Connection工厂,无效字母和到期队列都已配置。

您需要添加的只是您的应用程序需要使用的队列或主题。

例如:

<queue name='phaseQueueFromEngine'><entry name='/queue/phaseQueueFromEngine'/>
</queue>

条目名称是生产者和使用者用来发现队列的JNDI名称。

hornetq-configuration.xml

在这里您要定义接收器,连接器,桥和其他很酷的东西。

了解连接器和接受器

好的,这可能很棘手,所以我将尝试变得简单而必要。

HornetQ在服务器(例如JBoss)中运行或作为独立应用程序运行。

在上述任何一种情况下,HornetQ均通过与自己的服务器HornetQ服务器进行通信来工作。

为了与之通信,我们必须告诉我们如何连接以及我们接受的连接。

  • 接受者定义HornetQ服务器接受哪种连接类型。
  • 连接器定义了如何连接到HornetQ服务器。

幸运的是,in-vm和netty仅支持2种连接器和接受器。 当生产者和使用者位于同一虚拟机中时,将使用in-vm

例:

<acceptor name='in-vm'><factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
</acceptor>
<connector name='in-vm'><factory-class>org.hornetq.core.remoting.impl.invm.InVMConnectorFactory</factory-class>
</connector>

当生产者和消费者居住在不同的虚拟机中时,将使用netty

例:

同一台机器上的生产者/消费者:

<acceptor name='netty'><factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class><param key='host'  value='${host:localhost}'/><param key='port'  value='${port:5445}'/></acceptor>
<connector name=”netty”>
<factory-class>org.hornetq.integration.transports.netty.NettyConnectorFactory</factory-class>
<param key=”host” value=”${host:localhost}”/>
<param key=”port” value=”${port:5445}”/>
</connector>

不同机器上的生产者/消费者:

消费盒

<acceptor name=”netty-external-acceptor”>
<factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class>
<param key=”host” value=”172.x.x.62″/>
<param key=”port” value=”5445″/>
</acceptor>

生产箱

<connector name='remote-engine-connector'><factory-class> org.hornetq.integration.transports.netty.NettyConnectorFactory</factory-class><param key='host' value='172.x.x.62'/><param key='port' value='5445'/></connector>

到目前为止,一切都很好。

配置接受器和连接器时请注意,因为要进行正确的通信,它们必须与相同的主机和端口使用相同的种类。

带有netty连接器的netty接受器(相同的主机和端口)

带有in-vm连接器的in-vm接受器

带Netty连接器的in-vm接受器

带Netty连接器5446的Netty接受器端口5445

带有网络连接器172.xx62的网络接受器主机172.xx60

了解桥梁

我广泛使用的另一个功能是桥接。

如果您有一个生产者位于172.xx60框内,而一个消费者位于172.xx62框内,则需要连接它们,并在我们钟爱的配置文件hornetq-configuration.xml中配置网桥。

范例:

<bridge name=”from60to62Bridge”>
<queue-name>jms.queue.phaseQueueToEngine</queue-name>
<forwarding-address>jms.queue.phaseQueueFromInput</forwarding-address>
<reconnect-attempts>-1</reconnect-attempts>
<connector-ref connector-name=”remote-engine-connector”/>
</bridge>

是的,您可以使用连接器指定连接到其他hornetQ服务器的位置。 简单!

我希望这将阐明几个方面,并有助于更好地理解有时可怕的Hornetq配置。

即将推出.. HornetQ为孩子,父母和祖父母–第2章:地址设置的魔力

参考:《 JBoss儿童,父母和祖父母的HornetQ –我们的JCG合作伙伴 Marco Castigliego的第1章》 ,位于“ 删除重复并修复不良名称”博客上。

翻译自: https://www.javacodegeeks.com/2012/11/jboss-hornetq-for-kids-parents-and-grandparents-chapter-1.html

jboss 不适用内置日志

jboss 不适用内置日志_适用于孩子,父母和祖父母的JBoss HornetQ –第1章相关推荐

  1. ASP.NET Core 2.1 : 十二.内置日志、使用Nlog将日志输出到文件

    应用离不开日志,虽然现在使用VS有强大的调试功能,开发过程中不复杂的情况懒得输出日志了(想起print和echo的有木有),但在一些复杂的过程中以及应用日常运行中的日志还是非常有用. ASP.NET ...

  2. mysql内置变量_详解MySQL注入利用的变量

    MySQL注入数据库时,我们可以利用内置的变量来得到更多的mysql信息,下面就让我们一起来了解MySQL注入利用的变量. 当我们注射mysql库的输入点的时候,可以通过version()/user( ...

  3. pandas内置绘图_使用Pandas内置功能探索数据集

    pandas内置绘图 Each and every data scientist is using the very famous libraries for data manipulation th ...

  4. 内置对象和内置函数_内置假对象

    内置对象和内置函数 尽管模拟对象是进行单元测试的理想工具,但通过模拟框架进行模拟可能会将您的单元测试变成难以维护的混乱. 这种复杂性的根本原因是我们的对象太大. 他们有很多方法,这些方法返回其他对象, ...

  5. 单体内置对象_单体内置对象

    内置对象:由ECMAscript实现提供的,不依赖宿主环境的对象,这些对象再ES程序执行之前就已经存在 Global对象 Global全局对象是一个特别的对象(兜底对象) 不属于其他对象的属性和方法, ...

  6. python入门之函数调用内置函数_第九篇 python基础之函数,递归,内置函数

    阅读目录 一 数学定义的函数与python中的函数 二 为何使用函数 背景提要 三 函数和过程 四 函数参数 五 局部变量和全局变量 六 前向引用之'函数即变量' 七 嵌套函数和作用域 八 递归调用 ...

  7. python只能使用内置数据库_隐藏彩蛋:你知道python有一个内置的数据库吗?

    本文转载自公众号"读芯术"(ID:AI_Discovery). 如果你是软件开发人员,相信你一定知道甚至曾经使用过一个非常轻量级的数据库--SQLite.它几乎拥有作为一个关系数据 ...

  8. 禁用内置键盘_如何禁用Windows 10的所有内置广告

    禁用内置键盘 Windows 10 has a lot of built-in advertising. This isn't just about the free upgrade offer: E ...

  9. js 序列化内置对象_内置序列化技术

    js 序列化内置对象 本文是我们名为" 高级Java "的学院课程的一部分. 本课程旨在帮助您最有效地使用Java. 它讨论了高级主题,包括对象创建,并发,序列化,反射等. 它将指 ...

最新文章

  1. oracle lz压缩,LZ:Oracle热备期间过量Redo生成控制
  2. 以前初学php用的分页函数
  3. python sorted()
  4. 美国或将限制AI等14类新技术出口,有意针对中国
  5. 【小项目关键技术二】UGV电机编码测速
  6. oracle-01940,ORA-01940: 无法删除当前已连接的用户的错误,该如何解决呢?
  7. Git和Github详细入门教程
  8. 关于FLEX中找不到目标对象或通道未定义错误
  9. SVN删除文件及恢复
  10. jQuery按住滑块拖动验证插件
  11. Android APK下载安装(自动更新)
  12. 平房误差函数_平方误差函数(square error function)与平方损失函数(square loss function)...
  13. <个人学习记录>斑点检测
  14. 程序员面试金典——解题总结: 9.18高难度题 18.5有个内含单词的超大文本文件,给定任意两个单词,找出在这个文件中这两个单词的最短距离
  15. CG插画培训班有哪些
  16. python股票量化交易(8)---K线图:锤头,射击之星,早晨之星
  17. SpringBoot - SpringBoot配置说明
  18. java pdf模板 表单 多页_java使用itext操作填充pdf模板,(根据一个模板生成多页数据)...
  19. Dropbox协议分析
  20. python文档之查看帮助文档方法

热门文章

  1. 训练集样本不平衡问题对CNN的影响
  2. Java 调用EXE
  3. 小菜:关于main方法的面试题
  4. MySQL的表数据复制
  5. 服务高可用:幂等性设计
  6. 亦云小组KTV点歌系统简介
  7. 考研生的努力程度是有多恐怖!
  8. (选择 冒泡 插入 二分 异或)
  9. IntelliJ IDEA如何导入Gradle项目
  10. linux 提取cpio_15. Linux提取RPM包文件(cpio命令)详解