RabbitMQ培訓_第1頁
RabbitMQ培訓_第2頁
RabbitMQ培訓_第3頁
RabbitMQ培訓_第4頁
RabbitMQ培訓_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Rabbit MQ高效部署分布式 消息隊列PPT模板下載: 行業(yè)PPT模板: 節(jié)日PPT模板: PPT素材下載: PPT圖表下載: 優(yōu)秀PPT下載: PPT教程: Word教程: Excel教程: 資料下載: PPT課件下載: 范文下載: 試卷下載: 教案下載: 添加目錄EntetRabbit MQ 原理分析Rabbit MQ 部署與基礎(chǔ)操作Rabbit MQ 簡介Rabbit MQ 優(yōu)勢Rabbit MQ 分布式與高可用Rabbit MQ 簡介 Rabbit MQ是流行的開源消息隊列系統(tǒng),用erlang語言開發(fā)。RabbitMQ是AMQP(高級消息隊列協(xié)議)的標準實現(xiàn)。最初起源于金融系統(tǒng),用

2、于在分布式系統(tǒng)中存儲轉(zhuǎn)發(fā)消息,在易用性、擴展性、高可用性等方面表現(xiàn)不俗。 Rabbit MQ中有幾個重要概念:虛擬主機(virtual host),交換機(exchange ),路由鍵( Routing Key ),隊列(queue),綁定(binding),通道(channel),消費者(consumer),生產(chǎn)者(producer)。1. Exchange:消息交換機,它指定消息按什么規(guī)則,路由到哪個隊列。2. Queue:消息隊列載體,每個消息都會被投入到一個或多個隊列。3. Binding:綁定,它的作用就是把exchange和queue按照路由規(guī)則綁定起來。4. Routing Ke

3、y:路由關(guān)鍵字,exchange根據(jù)這個關(guān)鍵字進行消息投遞。5. vhost:虛擬主機,一個broker里可以開設(shè)多個vhost,用作不同用戶的權(quán)限分離。6. producer:消息生產(chǎn)者,就是投遞消息的程序。7. consumer:消息消費者,就是接受消息的程序。8. channel:消息通道,在客戶端的每個連接里,可建立多個channel,每個channel代表一個會話任務(wù)。(1)客戶端連接到消息隊列服務(wù)器,打開一個channel。(2)客戶端聲明一個exchange,并設(shè)置相關(guān)屬性。(3)客戶端聲明一個queue,并設(shè)置相關(guān)屬性。(4)客戶端使用routing key,在exchange

4、和queue之間建立好綁定關(guān)系。(5)客戶端投遞消息到exchange。 exchange接收到消息后,就根據(jù)消息的key和已經(jīng)設(shè)置的binding,進行消息路由,將消息投遞到一個或多個隊列里。消息隊列的使用過程大概如下: Rabbit MQ 結(jié)構(gòu)圖如下: RabbitMQ支持消息的持久化,也就是數(shù)據(jù)寫在磁盤上,為了數(shù)據(jù)安全考慮,我想大多數(shù)用戶都會選擇持久化。消息隊列持久化包括3個部分:(1)exchange持久化,在聲明時指定durable = 1(2)queue持久化,在聲明時指定durable = 1(3)消息持久化,在投遞時指定delivery_mode = 2(1是非持久化) 如果e

5、xchange和queue都是持久化的,那么它們之間的binding也是持久化的。如果exchange和queue兩者之間有一個持久化,一個非持久化,就不允許建立綁定。消息持久化:Rabbit MQ 原理分析 談到RabbitMQ,首先要談到MQ和AMQP。 MQ全稱為Message Queue, 消息隊列(MQ)是一種應用程序?qū)贸绦虻耐ㄐ欧椒ā贸绦蛲ㄟ^寫和檢索出入列隊的針對應用程序的數(shù)據(jù)(消息)來通信,而無需用專用連接來鏈接它們。AMQP:Advanced Message Queuing Protocol,高級消息隊列協(xié)議,是應用層協(xié)議的一個開放標準,為面向消息的中間件設(shè)計。AMQP

6、的主要特征是面向消息、隊列、路由(包括點對點和發(fā)布/訂閱)、可靠性、安全性要求很嚴格。 AMQP允許來自不同供應商的消息生產(chǎn)者和消費者實現(xiàn)真正的互操作擴展,就如同SMTP、HTTP、FTP等協(xié)議采用的方式一樣。而此前對于消息中間件的標準化努力則集中在API層面上(比如JMS),且沒有提供互操作性的途徑。不同于JMS的僅僅定義API,AMQP是一個線路級的協(xié)議它描述了通過網(wǎng)絡(luò)傳輸?shù)淖止?jié)流的數(shù)據(jù)格式。因此,遵從這個協(xié)議的任何語言編寫的工具均可以操作AMQP消息。Rabbit MQ部署與基本操作一、Rabbit MQ環(huán)境安裝:1、安裝Erlang rpm ivh erlang-18.1-1.el6.

7、x86_64.rpm2、安裝RabbitMQrpm ivh rabbitmq-server-3.5.6-1.noarch.rpm3、開放端口5672 Iptables -A INPUT -p tcp -dport 5672 -j ACCEPT二、環(huán)境配置:rabbitmq_management一般情況下,RabbitMQ的默認配置就足夠了。如果希望特殊設(shè)置的話,需要手動創(chuàng)建,配置文件分別為:環(huán)境變量配置文件 rabbitmq-env.conf配置信息配置文件 rabbitmq.config環(huán)境變量初始值通過文件rabbitmq-env.conf來配置,rabbitmq-env.conf默認位置

8、在/etc/rabbitmq,且位置不可更改。rabbitmq-env.conf中的每項都以 RABBITMQ_為前綴,常用參數(shù)如下:RABBITMQ_NODE_IP_ADDRESS=/IP地址,空串bind所有地址,指定地址bind指定網(wǎng)絡(luò)接口RABBITMQ_NODE_PORT=/TCP端口號,默認是5672RABBITMQ_NODENAME=/節(jié)點名稱。默認是rabbitRABBITMQ_CONFIG_FILE=/配置文件路徑RABBITMQ_MNESIA_BASE=/mnesia所在路徑RABBITMQ_LOG_BASE=/日志所在路徑RABBITMQ_PLUGINS_DIR=/插件所

9、在路徑在環(huán)境變量配置文件即rabbitmq-env.conf中通過RABBITMQ_CONFIG_FILE指定的文件加后綴.config。一般取名為rabbitmq.config,該文件是標準的Erlang配置文件,rabbitmq.config文件中每個參數(shù)為一個Erlang tuple,結(jié)構(gòu)為Key,Value, Key為atom類型, Value為一個term,其中幾個關(guān)鍵參數(shù)為:tcp_listerners:設(shè)置rabbimq的監(jiān)聽端口,默認為5672。disk_free_limit:磁盤低水位線,若磁盤容量低于指定值則停止接收數(shù)據(jù),默認值為mem_relative, 1.0,即與內(nèi)存

10、相關(guān)聯(lián)1:1,也可定制為多少byte。vm_memory_high_watermark:設(shè)置內(nèi)存低水位線,若低于該水位線,則開啟流控機制,默認值是0.4,即內(nèi)存總量的40%。hipe_compile:將部分rabbimq代碼用High Performance Erlang compiler編譯,可提升性能,該參數(shù)是實驗性,若出現(xiàn)erlang vm segfaults,應關(guān)掉。force_fine_statistics:該參數(shù)屬于rabbimq_management,若為true則進行精細化的統(tǒng)計,但會影響性能。frame_max:包大小,若包小則低延遲,若包則高吞吐,默認是131072=128

11、K。heartbeat:客戶端與服務(wù)端心跳間隔,設(shè)置為0則關(guān)閉心跳,默認是600秒。三、安裝插件并啟動: 啟用插件:rabbitmq-plugins enable rabbitmq_management guest這個默認的用戶只能通過http:/localhost:15672 來登錄,其他的IP無法直接使用這個賬號;如果要遠程通過Web控制臺管理Rabbit MQ需要進行如下的配置:a) 新增用戶:rabbitmqctl add_userusernamepasswordb) 設(shè)置用戶角色:rabbitmqctl set_user_tags username administratoc) 編輯

12、 /etc/rabbitmq/rabbitmq.config 添加如下配置信息:rabbit, tcp_listeners, 5672, loopback_users, usernamed) 啟動RabbitMQ服務(wù) rabbitmq-server -detachedRabbit MQ 集群部署一、為集群中所有服務(wù)器安裝Erlang和RabbitMQ。二、同步所有服務(wù)器時間。三、修改/etc/hosts文件,加入集群所有節(jié)點描述: node1 node2 node3四、設(shè)置Erlang Cookie:Erlang Cook

13、ie 文件:/var/lib/rabbitmq/.erlang.cookie。將 node1 的該文件復制到 node2、node3等集群。五、使用-detached參數(shù)啟動各節(jié)點RabbitMQ。六、組成集群將 node2、node3 與 node1 組成集群: node2 # rabbitmqctl stop_appnode2 # rabbitmqctl join_cluster rabbitnode1node2 # rabbitmqctl start_app此時 node2 與 node3 也會自動建立連接;現(xiàn)在node2、node3均為磁盤節(jié)點,如果要使用內(nèi)存節(jié)點,則可以使用如下命令加入集群:node2 # rabbitmqctl join_cluster -ram rabbitnode1 集群配置好后,可以在 RabbitMQ 任意節(jié)點上執(zhí)行如下命令來查看是否集群配置成功。 rabbitmqctl cluster_status 七、設(shè)置鏡像隊

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論