版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Rabbit MQ高效部署分布式 消息隊(duì)列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是流行的開源消息隊(duì)列系統(tǒng),用erlang語言開發(fā)。RabbitMQ是AMQP(高級消息隊(duì)列協(xié)議)的標(biāo)準(zhǔn)實(shí)現(xiàn)。最初起源于金融系統(tǒng),用
2、于在分布式系統(tǒng)中存儲轉(zhuǎn)發(fā)消息,在易用性、擴(kuò)展性、高可用性等方面表現(xiàn)不俗。 Rabbit MQ中有幾個重要概念:虛擬主機(jī)(virtual host),交換機(jī)(exchange ),路由鍵( Routing Key ),隊(duì)列(queue),綁定(binding),通道(channel),消費(fèi)者(consumer),生產(chǎn)者(producer)。1. Exchange:消息交換機(jī),它指定消息按什么規(guī)則,路由到哪個隊(duì)列。2. Queue:消息隊(duì)列載體,每個消息都會被投入到一個或多個隊(duì)列。3. Binding:綁定,它的作用就是把exchange和queue按照路由規(guī)則綁定起來。4. Routing Ke
3、y:路由關(guān)鍵字,exchange根據(jù)這個關(guān)鍵字進(jìn)行消息投遞。5. vhost:虛擬主機(jī),一個broker里可以開設(shè)多個vhost,用作不同用戶的權(quán)限分離。6. producer:消息生產(chǎn)者,就是投遞消息的程序。7. consumer:消息消費(fèi)者,就是接受消息的程序。8. channel:消息通道,在客戶端的每個連接里,可建立多個channel,每個channel代表一個會話任務(wù)。(1)客戶端連接到消息隊(duì)列服務(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,進(jìn)行消息路由,將消息投遞到一個或多個隊(duì)列里。消息隊(duì)列的使用過程大概如下: Rabbit MQ 結(jié)構(gòu)圖如下: RabbitMQ支持消息的持久化,也就是數(shù)據(jù)寫在磁盤上,為了數(shù)據(jù)安全考慮,我想大多數(shù)用戶都會選擇持久化。消息隊(duì)列持久化包括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, 消息隊(duì)列(MQ)是一種應(yīng)用程序?qū)?yīng)用程序的通信方法。應(yīng)用程序通過寫和檢索出入列隊(duì)的針對應(yīng)用程序的數(shù)據(jù)(消息)來通信,而無需用專用連接來鏈接它們。AMQP:Advanced Message Queuing Protocol,高級消息隊(duì)列協(xié)議,是應(yīng)用層協(xié)議的一個開放標(biāo)準(zhǔn),為面向消息的中間件設(shè)計。AMQP
6、的主要特征是面向消息、隊(duì)列、路由(包括點(diǎn)對點(diǎn)和發(fā)布/訂閱)、可靠性、安全性要求很嚴(yán)格。 AMQP允許來自不同供應(yīng)商的消息生產(chǎn)者和消費(fèi)者實(shí)現(xiàn)真正的互操作擴(kuò)展,就如同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中的每項(xiàng)都以 RABBITMQ_為前綴,常用參數(shù)如下:RABBITMQ_NODE_IP_ADDRESS=/IP地址,空串bind所有地址,指定地址bind指定網(wǎng)絡(luò)接口RABBITMQ_NODE_PORT=/TCP端口號,默認(rèn)是5672RABBITMQ_NODENAME=/節(jié)點(diǎn)名稱。默認(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)存低水位線,若低于該水位線,則開啟流控機(jī)制,默認(rèn)值是0.4,即內(nèi)存總量的40%。hipe_compile:將部分rabbimq代碼用High Performance Erlang compiler編譯,可提升性能,該參數(shù)是實(shí)驗(yàn)性,若出現(xiàn)erlang vm segfaults,應(yīng)關(guān)掉。force_fine_statistics:該參數(shù)屬于rabbimq_management,若為true則進(jìn)行精細(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需要進(jìn)行如下的配置: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é)點(diǎn)描述: node1 node2 node3四、設(shè)置Erlang Cookie:Erlang Cook
13、ie 文件:/var/lib/rabbitmq/.erlang.cookie。將 node1 的該文件復(fù)制到 node2、node3等集群。五、使用-detached參數(shù)啟動各節(jié)點(diǎn)RabbitMQ。六、組成集群將 node2、node3 與 node1 組成集群: node2 # rabbitmqctl stop_appnode2 # rabbitmqctl join_cluster rabbitnode1node2 # rabbitmqctl start_app此時 node2 與 node3 也會自動建立連接;現(xiàn)在node2、node3均為磁盤節(jié)點(diǎn),如果要使用內(nèi)存節(jié)點(diǎn),則可以使用如下命令加入集群:node2 # rabbitmqctl join_cluster -ram rabbitnode1 集群配置好后,可以在 RabbitMQ 任意節(jié)點(diǎn)上執(zhí)行如下命令來查看是否集群配置成功。 rabbitmqctl cluster_status 七、設(shè)置鏡像隊(duì)
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鎢鉬制品燒結(jié)工崗前成果轉(zhuǎn)化考核試卷含答案
- 蒸呢機(jī)擋車工崗前崗后考核試卷含答案
- 毛筆制作工常識水平考核試卷含答案
- 補(bǔ)寫學(xué)生病假請假條范文
- 2025年血管栓塞劑及栓塞材料項(xiàng)目發(fā)展計劃
- 2025年戊二酸二甲酯項(xiàng)目發(fā)展計劃
- 玻璃強(qiáng)化技術(shù)
- 2026年智能餐桌項(xiàng)目項(xiàng)目建議書
- 2025年江蘇省徐州市中考英語真題卷含答案解析
- 2025年四川省樂山市中考化學(xué)真題卷含答案解析
- 一圖看清37家公司經(jīng)營模式:財務(wù)報表桑基圖(2025年6月版)(英)
- 如何做好一名護(hù)理帶教老師
- 房地產(chǎn)項(xiàng)目回款策略與現(xiàn)金流管理
- 花溪區(qū)高坡苗族鄉(xiāng)國土空間總體規(guī)劃 (2021-2035)
- 非連續(xù)性文本閱讀(中考試題20篇)-2024年中考語文重難點(diǎn)復(fù)習(xí)攻略(解析版)
- 專題13 三角函數(shù)中的最值模型之胡不歸模型(原卷版)
- 門診藥房西藥管理制度
- 新能源汽車生產(chǎn)代工合同
- 2025年中煤科工集團(tuán)重慶研究院有限公司招聘筆試參考題庫含答案解析
- 消防救援預(yù)防職務(wù)犯罪
- 一體化泵站安裝施工方案
評論
0/150
提交評論