版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年技師工種勞動合同
- 2024年建筑項目安全管理與協(xié)調(diào)協(xié)議
- 2024養(yǎng)殖項目售后服務(wù)合同
- 2024含有AI智能服務(wù)的健身房租賃合同
- 2024年文化和創(chuàng)意產(chǎn)品出口協(xié)議
- 2024年房產(chǎn)交易合同(含貸款)
- 2024年度商業(yè)聯(lián)盟:公司個人合作條款
- 2024年房產(chǎn)交易雙方保障合同
- 信息必刷卷01-2023年高考地理考前信息必刷卷(湖南專用)(解析版)
- 第02練離子反應(yīng)-2023年高考化學(xué)一輪復(fù)習(xí)小題多維練(原卷版)
- 初中語文人教七年級上冊要拿我當(dāng)一挺機關(guān)槍使用
- 北京頌歌原版五線譜鋼琴譜正譜樂譜
- 病史采集和臨床檢查方法
- PSUR模板僅供參考
- 火力發(fā)電企業(yè)作業(yè)活動風(fēng)險分級管控清單(參考)
- 民法典合同編之保證合同實務(wù)解讀PPT
- 全國第四輪學(xué)科評估PPT幻燈片課件(PPT 24頁)
- 大氣污染控制工程課程設(shè)計-某廠酸洗硫酸煙霧治理設(shè)施設(shè)計
- 名牌包包網(wǎng)紅主播電商直播帶貨話術(shù)腳本
- 高考語文作文素材人物速遞——蘇炳添課件18張
- 蛋雞養(yǎng)殖場管理制度管理辦法
評論
0/150
提交評論