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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rè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é)議)的標(biāo)準(zhǔn)實現(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)是一種應(yīng)用程序?qū)?yīng)用程序的通信方法。應(yīng)用程序通過寫和檢索出入列隊的針對應(yīng)用程序的數(shù)據(jù)(消息)來通信,而無需用專用連接來鏈接它們。AMQP:Advanced Message Queuing Protocol,高級消息隊列協(xié)議,是應(yīng)用層協(xié)議的一個開放標(biāo)準(zhǔn),為面向消息的中間件設(shè)計。AMQP

6、的主要特征是面向消息、隊列、路由(包括點對點和發(fā)布/訂閱)、可靠性、安全性要求很嚴(yán)格。 AMQP允許來自不同供應(yīng)商的消息生產(chǎn)者和消費者實現(xiàn)真正的互操作擴展,就如同SMTP、HTTP、FTP等協(xié)議采用的方式一樣。而此前對于消息中間件的標(biāo)準(zhǔn)化努力則集中在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的默認(rèn)配置就足夠了。如果希望特殊設(shè)置的話,需要手動創(chuàng)建,配置文件分別為:環(huán)境變量配置文件 rabbitmq-env.conf配置信息配置文件 rabbitmq.config環(huán)境變量初始值通過文件rabbitmq-env.conf來配置,rabbitmq-env.conf默認(rèn)位置

8、在/etc/rabbitmq,且位置不可更改。rabbitmq-env.conf中的每項都以 RABBITMQ_為前綴,常用參數(shù)如下:RABBITMQ_NODE_IP_ADDRESS=/IP地址,空串bind所有地址,指定地址bind指定網(wǎng)絡(luò)接口RABBITMQ_NODE_PORT=/TCP端口號,默認(rèn)是5672RABBITMQ_NODENAME=/節(jié)點名稱。默認(rèn)是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,該文件是標(biāo)準(zhǔn)的Erlang配置文件,rabbitmq.config文件中每個參數(shù)為一個Erlang tuple,結(jié)構(gòu)為Key,Value, Key為atom類型, Value為一個term,其中幾個關(guān)鍵參數(shù)為:tcp_listerners:設(shè)置rabbimq的監(jiān)聽端口,默認(rèn)為5672。disk_free_limit:磁盤低水位線,若磁盤容量低于指定值則停止接收數(shù)據(jù),默認(rèn)值為mem_relative, 1.0,即與內(nèi)存

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

11、K。heartbeat:客戶端與服務(wù)端心跳間隔,設(shè)置為0則關(guān)閉心跳,默認(rèn)是600秒。三、安裝插件并啟動: 啟用插件:rabbitmq-plugins enable rabbitmq_management guest這個默認(rèn)的用戶只能通過http:/localhost:15672 來登錄,其他的IP無法直接使用這個賬號;如果要遠(yuǎn)程通過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 的該文件復(fù)制到 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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論