jboss 不适用内置日志_适用于孩子,父母和祖父母的JBoss HornetQ –第1章
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.xml和hornetq-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章的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Spring Boot和Heroku
- 下一篇: 机场电脑安检吗(机场电脑过安检)