適用于孩子,父母和祖父母的JBoss HornetQ –第1章

現在與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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370592.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370592.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370592.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

riot.js教程【四】Mixins、HTML內嵌表達式

前文回顧riot.js教程【三】訪問DOM元素、使用jquery、mount輸入參數、riotjs標簽的生命周期&#xff1b;riot.js教程【二】組件撰寫準則、預處理器、標簽樣式和裝配方法&#xff1b;riot.js教程【一】簡介&#xff1b; 共享Mixins 混合開發可以使你很好的復用代碼&#xff0c;如…

移動端判斷手機橫豎屏狀態

禁用用戶自動縮放功能&#xff1a; <meta name"viewport" content"widthdevice-width, initial-scale1.0, maximum-scale1.0, user-scalable0"> 判斷橫豎屏狀態有兩種方法&#xff1a;css判斷、js判斷 (一)、css判斷橫屏還是豎屏 1、寫在同一個css文…

ubuntu dhcp ping 不通 自己_??2、DHCP安裝和配置

DHCP動態主機設置協議&#xff0c;是一個局域網的網絡協議&#xff0c;使用UDP協議工作&#xff0c;可以快速分配IP地址&#xff0c;解決內網IP不足、手動配置IP造成IP沖突以及內網機器多手工配置比較麻煩的問題。1.把win2008和win2003設置同一網段&#xff0c;網絡適配器—配置…

python秒數變日期_將pandas日期列轉換為已用秒數

新答案 將文本轉換為Timedeltadf[Origin Time(Local)] pd.to_timedelta(df[Origin Time(Local)]) df[Seconds] df[Origin Time(Local)].dt.total_seconds() 舊答案 考慮數據幀dfdf pd.DataFrame(dict(Datepd.date_range(2017-03-01, 2017-03-02, freq2H))) Date 0 2017-03-0…

mysql用一個表更新另一個表的方法

Solution 1: 修改1列(navicate可行) update student s, city c set s.city_name c.name where s.city_code c.code; Solution 2: 修改多個列 update a, b set a.titleb.title, a.nameb.name where a.idb.id Solution 3: 采用子查詢(navicate不可行) update student s set…

選擇您的Java EE 6應用服務器

我被問到的第一個問題是&#xff1a;“我們應該使用哪個Java EE應用服務器&#xff1f;”。 隨著Java EE 6的日益普及&#xff0c;新的兼容應用程序服務器獲得了認證。 當前的官方兼容性和認證矩陣列出了針對完全配置文件&#xff0c;Web配置文件或兩者認證的12種不同產品。 如…

串的基本計算

#include<stdio.h> #include<stdlib.h> //typedef int Status; #define Max 20 #define OK 1 #define ERROR 0 #define OVERLOE -2 typedef struct//堆分配表示串 { char *ch; int length; }HString; // int CreatHString(HString &H)//構造字符串 { H.length …

HTML表格屬性及簡單實例

這里主要總結記錄下表格的一些屬性和簡單的樣式&#xff0c;方便以后不時之需。 1、<table> 用來定義HTML的表格&#xff0c;具有本地屬性 border 表示邊框&#xff0c;border屬性的值必須為1或空字符串("")。該屬性不會控制邊框的樣式&#xff0c;而是由CSS來…

怎么查看MySQL 源碼編譯了什么_Mysql 源碼編譯教程貼

題外話:這是一篇教程貼,不僅學的是mysql的編譯,還是一些編譯的知識.我也是一個菜鳥,寫一些感悟和心得,有什么問題可以批評指正,謝謝!如果只是為了安裝請移到我的另一篇安裝貼: Mysql安裝貼環境:OS: CentOS 6.6x64 minimysql: mysql-5.6.251. mysql 下載:http://dev.mysql.com/d…

linux mysql啟動_MySQL 安裝(二)

MySQL 安裝所有平臺的Mysql下載地址為&#xff1a;MySQL 下載 . 挑選你需要的 MySQL Community Server 版本及對應的平臺。Linux/UNIX上安裝MySQLLinux平臺上推薦使用RPM包來安裝MySQL&#xff0c;MySQL AB提供了以下RPM包的下載地址&#xff1a;MySQL - MySQL服務器。你需要該…

0524駝峰命名法,模態對話框

模態對話框 window.showModalDialog("url"&#xff0c;"向目標對話框傳的值"&#xff0c;"窗口特征參數") 打開模態對話框 模態對話框必須關掉才能對后端操作。 模塊對話框和窗口的區別是永遠置頂。 特征參數&#xff1a;用分號隔開&#xff0c;…

誰在偷你的記憶? 應用服務器版

您創建了一個了不起的應用程序。 您將其投入生產。 您會發現您沒有足夠的可用內存。 即使您的所有測量結果&#xff08;可能是借助我們的小型公用事業公司進行的測量 &#xff09;都表明您應該還不錯。 我們計劃發布一系列博客文章&#xff0c;研究堆消失的位置&#xff0c;并…

遺忘的html標簽

1 <span>x</span><sup>2</sup><span> y10</span> 2 <br> 3 <span>H</span><sub>2</sub><span>O</span> <sup> 標簽可定義上標文本。 包含在 <sup> 標簽和其結束標簽 …

Android四大組件之BroadcastReceiver

什么是BroadcastReceiver? BroadcastReceiver(廣播接收器)&#xff0c;顧名思義&#xff0c;是用來接收廣播的。Android內部實現了一套廣播通信機制&#xff0c;即在某個應用或某個組件注冊廣播接收器&#xff0c;接收特定類型的廣播。當別的應用或組件發送該類型的廣播時&…

mysql數據庫索引頁號為什么從3開始_MySQL數據庫快問快答

原標題&#xff1a;MySQL數據庫快問快答前言今天樓主給大家列一下關于數據庫幾個常見問題的要點&#xff0c;如果大家對其中的問題感興趣&#xff0c;可以自行擴展研究。1. UNION ALL 與 UNION 的區別UNION和UNION ALL關鍵字都是將兩個結果集合并為一個。UNION在進行表鏈接后會…

通過簡單的Spring方面擺脫null參數

什么是世界上最令人討厭的&#xff0c;同時也是最受歡迎的例外&#xff1f; 我敢打賭這是NullPointerException。 NullPointerException可以表示任何東西&#xff0c;從簡單的“ ups&#xff0c;我認為不能為空”到數小時和數天的第三方庫調試&#xff08;我敢于嘗試使用Doze…

java arraylist排序_最全Java集合筆記

集合概述什么是集合集合框架&#xff1a;用于存儲數據的容器。集合框架是為表示和操作集合而規定的一種統一的標準的體系結構。任何集合框架都包含三大塊內容&#xff1a;對外的接口、接口的實現和對集合運算的算法。接口&#xff1a;表示集合的抽象數據類型。接口允許我們操作…

【3】JVM-OutOfMemory異常重現

JVM中常見的OOM&#xff0c;那么如何通過自己編寫代碼產生這些OOM異常呢&#xff1f;通過寫代碼重現異常&#xff0c;是為了避免在工作中寫出有OOM BUG的代碼。之前雖然看過相關文章&#xff0c;但是沒自己寫過這些代碼&#xff0c;這次在編寫的實際過程中&#xff0c;由于和書…

CachedIntrospectionResults 初始化

轉載于:https://www.cnblogs.com/xiluhua/p/7862985.html

為什么有些內聯(行內)元素可以設置寬高?

為什么有些內聯&#xff08;行內&#xff09;元素如img、input可以設置寬高&#xff1f; 在說明之前我們先來了解一些定義。 塊級元素和內聯元素&#xff1a; ①塊級元素總是獨占一行&#xff0c;表現為另起一行開始&#xff0c;而且其后的元素也必須另起一行顯示。 寬度(w…