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

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

什么是HornetQ

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

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

组态

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

在此文件夹中,我们最多有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 Server接受哪种连接类型。
  • 连接器定义了如何连接到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 for Kids,父母和祖父母–来自我们的JCG合作伙伴 Marco Castigliego的第一章 ,位于“ 删除重复并修复不良名称”博客上。

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

适用于孩子,父母和祖父母的JBoss HornetQ –第1章相关推荐

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

    jboss 不适用内置日志 现在与HornetQ合作已经快4年了,我认为现在该分享我到目前为止所学的部分知识了. 这篇文章的主要目的不是重写官方文档 ,而是以简单的方式阐明我们在PaddyPower中 ...

  2. jboss hornetq jms 用户文档

    HornetQ 2.1用户手册 Putting the buzz in messaging Table of Contents 1. 法律声明 2. 前言 3. 项目信息 3.1. 软件下载 3.2. ...

  3. 具有Eclipse和嵌入式JBoss HornetQ Server的简单JMS 1.1生产者和使用者示例

    Before going to through this post, please read my previous post at "JMS API 1.1 Producer and Co ...

  4. 实例中给出child-parent(孩子——父母)表,要求输出grandchild-grandparent(孙子——爷奶)表

        一·需求描述: 要求从给出的数据中寻找所关心的数据,它是对原始数据所包含信息的挖掘.下面进入这个实例. 实例中给出child-parent(孩子--父母)表,要求输出grandchild-gr ...

  5. MapReduce:给出children-parents(孩子——父母)表,要求输出grandchild-grandparent(孙子——爷奶)表...

    hadoop中使用MapReduce单表关联案例: MapReduce:给出children-parents(孩子--父母)表,要求输出grandchild-grandparent(孙子--爷奶)表. ...

  6. 不要打2岁内和6岁后的孩子 父母必看

    一位妈妈说:"孩子经常无理取闹,到超市就要买这买那,不给买就坐在地上哭闹.到别人家去就乱翻乱动,还会到人家沙发上乱蹦,无论你怎么说,孩子都不听话.每次我都会气不打一处来,回到家就痛打一顿,但 ...

  7. Java孩子父母类_父母和子女复选框

    Parent element Child element Child element Parent element2 Child element2 Child element2 Parent elem ...

  8. Java孩子父母类,@Output孩子和父母之间的沟通 . 角2(5)

    我正在尝试学习角度2,并且我正在尝试使用来自我的子组件的数据在父组件中设置变量 . 基本上我在父视图中有一个子 Headers ,我希望 Headers 和一些HTML根据加载的子项进行更改 . 父组 ...

  9. 孩子不愿意去上学让父母揪心无奈

    孩子已经两个星期没有去上学,让父母揪心无奈,对孩子也打骂过,也道歉过,不论怎么样开始说好到时间去上学,但到点了或者抓住门框就是不愿意放手,说自己害怕,说自己肚子痛,说头疼,当闹得父母没有办法,孩子就会 ...

最新文章

  1. pssh批量执行启动tomcat报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
  2. 不用光盘可破解电脑系统密码
  3. java测试开发_测试开发系类之Java常用知识点
  4. 实时计算无线数据分析
  5. python编译2的n次方计算器_用PYTHON2做个计算器,哪位高手能用Python写出计算器的代码,需要加减乘除和退出,谢谢!...
  6. 腾讯云数据库三大产品线统一升级为TDSQL,这是要集中力量干大事! ​
  7. 顶尖黑客集结令 | GeekPwn2018上海站邀你“决战AI安全”
  8. Tomcat下ajax请求路径总结
  9. 中国AI专利数稳居第一!世界各国AI专利深度盘点
  10. 《项梵自述》分享我的心酸经历
  11. VUE中的filters过滤器2种用法
  12. win10 java模拟鼠标_[pc玩家]如何在Windows10中用键盘控制鼠标光标
  13. Robocup3D项目搭建
  14. 靳东神预测怎么回事?预测了什么内容
  15. 【读书笔记】《你有你的计划世界另有计划》——达·芬奇诅咒
  16. cs230 深度学习 Lecture 2 编程作业: Logistic Regression with a Neural Network mindset
  17. 十一长假宅到底,Wi-Fi可能伤不起
  18. mp4是什么格式?如何录制mp4格式的视频?一招解决
  19. Salesforce资质认证 - Platform Developer I / II认证及维护考试
  20. 手把手教你----模拟登录百度首页

热门文章

  1. python参数_python参数的介绍
  2. python中debug有什么用途_史上最方便的Python Debug工具
  3. Java的值传递解析
  4. 递归 反转字符串_使用递归反转字符串
  5. solid设计原则_SOLID设计原则
  6. 和谐 平等_平等还是认同?
  7. jvm gc阻塞时长 占比_jvm进行转义分析需要多长时间? 可能比您想象的要长。
  8. weakreference_Java中WeakReference,SoftReference,PhantomReference和Strong Reference之间的区别...
  9. nashorn 性能_Nashorn简介
  10. js webapp://_Project Student:维护Webapp(只读)