ActiveMQ支持的傳輸協議

?連接到ActiveMQ

 Connector:ActiveMQ提供的,用來實現連接通信的功能。包括:client-to-broker、broker-to-broker。ActiveMQ允許客戶端使用多種協議來進行連接。

    client-to-broker模式一般是配置文件中的transportConnector配置

    broker-to-broker:一般是指網絡(network)===后面學習?

?

ActiveMQ支持的client-to-broker的通信協議如下:最常用的也就是TCP和NIO

1.TCP:這個也是缺省值

2.NIO

3.UDP

4.SSL

5.Http(s)

6.VM:如果客戶端和broker在一個虛擬機內的話,通過VM協議通訊在VM內通訊,從而減少網絡傳輸的開銷

配置transportConnectors,位于conf/activemq.xml,大致如下:

        <!--The transport connectors expose ActiveMQ over a given protocol toclients and other brokers. For more information, see:http://activemq.apache.org/configuring-transports.html--><transportConnectors><!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/><transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/><transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/><transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/><transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/></transportConnectors>

文件的注釋也注明了更詳細協議以及參數的配置參考:http://activemq.apache.org/configuring-transports.html

1.Transmission Control Protocol (TCP)---常用

1.這是默認的Broker配置,TCP的Client監聽端口是61616。

2.在網絡傳輸數據前,必須要序列化數據,消息是通過一個叫wire protocol的來序列化成字節流。默認情況下,ActiveMQ把wire protocol叫做OpenWire,它的目的是促使網絡上的效率和數據快速交互。?

3.TCP連接的URI形式:tcp://hostname:port?key=value&key=value。其中前面部分是必須的,參數是可選的
4.TCP傳輸的優點:

  TCP協議傳輸可靠性高,穩定性強。
  高效性:字節流方式傳遞,效率很高。
  有效性、可用性:應用廣泛,支持任何平臺。

2.New I/O API Protocol (NIO)---常用

1.NIO協議和TCP協議類似,但NIO更側重于底層的訪問操作。它允許開發人員對同一資源可有更多的client調用和服務端有更多的負載。

2.適合使用NIO協議的場景:
  可能有大量的Client去鏈接到Broker上可能對于Broker有一個很遲鈍的網絡傳輸NIO的實現比TCP需要更少的線程去運行,所以建議使用NIO協議。

  可能對于Broker有一個很遲鈍的網絡傳輸。


我們在上面的配置文件中增加nio的連接:

        <transportConnectors><!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="nio" uri="nio://0.0.0.0:61618?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/><transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/><transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/><transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/><transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/></transportConnectors>

程序中修改對應的url即可,如下:

private static final String url = "nio://0.0.0.0:61618/";

?

3.User Datagram Protocol (UDP)

1.UDP和TCP的區別:

  (1)TCP是一個原始流的傳遞協議,意味著數據包是有保證的,換句話說,數據包是不會被復制和丟失的。UDP是不會保證數據包的傳遞的。

  (2)TCP也是一個穩定可靠的數據包傳遞協議,意味著數據在傳遞的過程中不會被丟失。這樣確保了在發送和接收之間能夠可靠的傳遞。相反,UDP僅僅是一個鏈接協議,所以它沒有可靠性之說。

2. 從上面可以得出:TCP是被用在穩定可靠的場景中使用的;UDP通常用在快速數據傳遞和不怕數據丟失的場景中,還有ActiveMQ通過防火墻時,只能用UDP。
3.?UDP連接的URI形式:udp://hostname:port?key=value

?

4. Secure Sockets Layer Protocol (SSL) 安全鏈路保護

  連接的URI形式:ssl://hostname:port?key=value

?

5.Hypertext Transfer Protocol (HTTP/HTTPS)

  1.像web和email等服務需要通過防火墻來訪問的,Http可以使用這種場合。
  2.連接的URI形式:http(https)://hostname:port?key=value

?

6.VM Protocol (VM)

1.? VM transport允許在VM內部通信,從而避免了網絡傳輸的開銷。這時候采用的連接不是socket連接,而是直接的方法調用。
2.??第一個創建VM連接的客戶會啟動一個embed VM broker(內嵌虛擬機服務),接下來所有使用相同的broker name的VM連接都會使用這個broker。當這個broker上所有的連接都關閉的時候,這個broker也會自動關閉。

3. 連接的URI形式:vm://brokerName?key=value
4. Java中嵌入的方式 vm:broker:(tcp://localhost:61616)?brokerName=embddedbroker&persistent=false

?

轉載于:https://www.cnblogs.com/qlqwjy/p/10463661.html

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

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

相關文章

http狀態碼301和302詳解及區別

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一直對http狀態碼301和302的理解比較模糊&#xff0c;在遇到實際的問題和翻閱各種資料了解后&#xff0c;算是有了一定的理解。這里記錄下…

哪些編程語言需要修復?

摘要&#xff1a;編程語言有十全十美的嗎&#xff1f;每種語言都有缺陷嗎&#xff1f;這不&#xff0c;Java、C、C、Python都中槍了。語言之間也可相互“掐架”&#xff0c;一起來看下。 原文作者Kevin Kelleher采用一種比較新穎的方式來比較編程語言&#xff1a;即描述每個編程…

時間修改,學習

設定時間格式 import datetime print datetime.datetime.now().strftime("%Y-%m-%d %H:%M") # 2018-05-08 16:54 時間增加 import datetime print (datetime.datetime.now()datetime.timedelta(days1)).strftime("%Y-%m-%d %H:%M:%S") days改為hours m…

Python標準庫

《Python標準庫》基本信息原書名&#xff1a; The Python Standard Library by Example 原出版社&#xff1a; Pearson Education 作者&#xff1a; (美)Doug Hellmann 譯者&#xff1a; 劉熾 出版社&#xff1a;機械工業出版社 ISBN&#xff1a;9787111378105上架時間&#xf…

五種世界頂級思維-20190303

一、墨菲定律&#xff1a; 你越害怕什么&#xff0c;就越會發生什么。 二、吉爾伯特定律&#xff1a;工作中最大的困難就是沒人跟你說如何去做。 三、吉德林法則&#xff1a;把問題清楚的寫下來&#xff0c;就已經成功一半了。 四、沃爾森法則&#xff1a;把信息和金錢排在第一…

狀態碼301和302的區別

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 定義如下&#xff1a; 301 Moved Permanently 被請求的資源已永久移動到新位置&#xff0c;并且將來任何對此資源的引用都應該使用本響應…

Perl迎來25歲生日

摘要&#xff1a;Perl迎來了它的第25歲生日&#xff0c;普天下Perlist都冒泡同慶一下&#xff0c;很多開發者喜歡它的理由是因其具備強力、穩定、成熟、可移植性等特點&#xff0c;Perl的愛好者們趕快送上你的祝福吧&#xff01; 昨天&#xff0c;Perl迎來了它的第25歲生日&…

20165114 《網絡對抗技術》 Exp0 Kali安裝與配置 Week1

目錄&#xff1a; 一、kail的下載與安裝 二、kali的網絡設置 三、安裝vmware-tools。 四、更新軟件源。 五、共享文件夾 六、安裝中文輸入法 一、kail的下載與安裝 VMware workstation的安裝 因為之前的課程已經涉及&#xff0c;所以本機已經安裝好了VMware workstation&#x…

大數據:互聯網大規模數據挖掘與分布式處理

《大數據:互聯網大規模數據挖掘與分布式處理》基本信息原書名&#xff1a;Mining of Massive Datasets作者&#xff1a; (美)拉賈拉曼(Rajaraman,A.) (美)厄爾曼(Ullman,J.D.) [作譯者介紹]譯者&#xff1a; 王斌叢書名&#xff1a; 圖靈程序設計叢書出版社&#xff1a;人民郵電…

pip 切換源安裝

https://pypi.tuna.tsinghua.edu.cn/simple/ # 清華大學 https://mirrors.aliyun.com/pypi/simple/ # 阿里云 https://pypi.douban.com/simple/ # 豆瓣 https://pypi.mirrors.ustc.edu.cn/simple/ # 中國科學技術大學 https://pypi.hustunique.com/ # 華中科技大學 代碼…

String... 參數定義中有三個點的意思

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 有一個方法&#xff1a; protected void addMessage(String... messages) { ... } String... 是指參數的長度是可以變化的&#xff0…

SpringCloud框架搭建+實際例子+講解+系列五

&#xff08;4&#xff09;服務消費者&#xff0c;面向前端或者用戶的服務 本模塊涉及到很多知識點&#xff1a;比如Swagger的應用&#xff0c;SpringCloud斷路器的使用&#xff0c;服務API的檢查、token的校驗&#xff0c;feign消費者的使用。大致代碼框架如下&#xff1a; 先…

軟件開發者最重要的四大技能

摘要&#xff1a;現如今&#xff0c;可供選擇的技術、語言及平臺可謂五花八門&#xff0c;因此要弄明白哪里是花時間訓練的最佳投資點也就難上加難…… 現如今&#xff0c;可供選擇的技術、語言及平臺可謂五花八門&#xff0c;因此作為軟件開發者&#xff0c;要弄明白哪里是花時…

數據缺失的補充與修改

1查看數據情況 df.shape df.info() 2.用指定值填充 df df.fillna(x) 3.判斷是否缺失 df.isnull() 4.刪除缺失數據 df df.dropna() 5.補充平均值 df df.fillna(df.mean()) 6.填充他前面一個元素值(ffill向前填充&#xff0c;bfill向后填充)&#xff08;limit:可以…

其他-私人♂收藏(比賽記錄 Mar, 2019)

OwO 03.03 [USACO19JAN] A. Redistricting 題意&#xff1a;給 \(g\) &#xff0c;求 \(f(n)\) 。 \(f(i)f(j)[g(i)\ge g(j)],j \in (i-k,i]\) 。 離散化之后線段樹優化 DP &#xff1b;或者發現額外貢獻最多只有 \(1\) &#xff0c;單調隊列。 B. Exercise Route 題意&#xf…

JSR 303 - Bean Validation 簡介及使用方法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一、JSR-303簡介 JSR-303 是 JAVA EE 6 中的一項子規范&#xff0c;叫做 Bean Validation&#xff0c;官方參考實現是Hibernate Valida…

POJ 3683 Priest John's Busiest Day(2-ST)

題目鏈接&#xff1a;http://poj.org/problem?id3683 題意&#xff1a;有n個婚禮要舉行&#xff0c;但是只有一個牧師。第i個婚禮使用牧師的時間長為leni&#xff0c;可以在開始時或結束時使用。問能否使得n個婚禮均舉行&#xff1f; 思路:對于婚禮i&#xff0c;i*2-1表示在開…

12個git實戰建議和技巧

摘要&#xff1a;git無疑是現在最熱門的版本控制工具&#xff0c;而且正在進一步侵占SVN以及CVS的市場。本文作者從國外技術問答社區Stack Overflow整理的12個很實用的git使用技巧和建議&#xff0c;希望對你有幫助。 1.使用“git diff”來折疊多行 用git diff經常會出現很多內…

python讀寫json和txt

讀寫json #數據保存如json文件 import json jsObj json.dumps(code_sec) fileObject open(jsonFile.json, w) fileObject.write(jsObj) fileObject.close() #讀取json文件 # 將類文件對象中的JSON字符串直接轉換成 Python 字典 with open(jsonFile.json, r, encoding…

Java 12 將于3月19日發布,8 個最終 JEP 一覽

開發四年只會寫業務代碼&#xff0c;分布式高并發都不會還做程序員&#xff1f; JDK 12 已于2018年12月進入 Rampdown Phase One 階段&#xff0c;這意味著該版本所有新的功能特性被凍結&#xff0c;不會再加入更多的 JEP 。該階段將持續一個月&#xff0c;主要修復 P1-P3 級…