版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
RabbitMQ應(yīng)用實踐易車二手車楊偉RabbitMQ應(yīng)用實踐易車二手車楊偉1目錄Rabbitmq介紹應(yīng)用實踐運維實踐目錄Rabbitmq介紹2第一部分:Rabbitmq介紹第一部分:Rabbitmq介紹3開源AMQP實現(xiàn),Erlang語言編寫,支持多種客戶端分布式、高可用、持久化、可靠、安全支持多協(xié)議:AMQP、STOMP、MQTT、HTTPRabbitmq主要概念對象:生產(chǎn)者、消費者、交換機、隊列業(yè)務(wù)解耦:解決多系統(tǒng)、異構(gòu)系統(tǒng)間的數(shù)據(jù)交換,解耦生產(chǎn)者和消費者適用場景:批量數(shù)據(jù)異步處理、并行任務(wù)串行化、高負載任務(wù)負載均衡簡要介紹開源AMQP實現(xiàn),Erlang語言編寫,支持多種客戶端簡要介4AMQP工作原理AMQP,即AdvancedMessageQueuingProtocol,高級消息隊列協(xié)議AMQP工作原理AMQP,即AdvancedMessage5幾個核心概念顆粒度:Broker:消息隊列服務(wù)器實體vhost:虛擬主機,一個broker里可以開設(shè)多個vhostExchange:消息交換機Queue:消息隊列載體消息流轉(zhuǎn):Binding:綁定,根據(jù)路由規(guī)則綁定exchange和queueRoutingKey:路由關(guān)鍵字Connection:連接channel:消息通道,每個連接可建立多個channel關(guān)聯(lián)對象producer:消息生產(chǎn)者consumer:消息消費者幾個核心概念顆粒度:6交換機類型Direct
Exchange
–完全匹配的路由Topic
Exchange
–模式匹配路由Fanout
Exchange
–廣播模式Headers
exchange–鍵值對匹配路由交換機類型Direct
Exchange
–完全匹配的路由7可靠性機制Messageacknowledgment:消息回執(zhí)應(yīng)答機制下:收到回執(zhí)才刪除消息;未收到回執(zhí)而連接斷開,消息會轉(zhuǎn)給其他消費者應(yīng)答機制下:忘記回執(zhí)會導(dǎo)致消息堆積,業(yè)務(wù)重復(fù)處理采用非應(yīng)答機制可以提升隊列處理效率Messagedurability:消息持久化可以避免絕大部分的消息丟失,如服務(wù)重啟采用非持久化機制可以提升隊列處理效率Prefetchcount:每次發(fā)送給消費者消息數(shù)量,默認1,實踐采用2可靠性機制Messageacknowledgment:消息8第二部分:部分應(yīng)用實踐第二部分:部分應(yīng)用實踐9復(fù)用connection、復(fù)用channel如果需要可靠業(yè)務(wù),需要支持持久化和ack機制兩臺虛擬機集群,QPS
>5000次/秒如果希望高吞吐,可以采取非持久化、noack、自動刪除機制兩臺虛擬機集群測試,QPS>20k次/秒穩(wěn)定性保障:生產(chǎn)者異常保障消費者異常保障代碼實現(xiàn)需注意細節(jié)復(fù)用connection、復(fù)用channel代碼實現(xiàn)需注意細10生產(chǎn)者面對exchange,消費者面對queue;一個queue只有一個消費者(可多個副本)進行處理;命名規(guī)劃:exchange:ex_{bizobj}_{usecase},
其中:ex為前綴,{bizobj}為業(yè)務(wù)對象(如Car、Dealer),{usecase}為某個業(yè)務(wù)場景,示例:ex_car_promotion;routekey:對應(yīng)于event(事件,某個業(yè)務(wù)動作),如:置頂(settop)、刷新(refresh)queue:為方便使用,建議對應(yīng)于event(采用exchange+event),如:qu_{bizobj}_{usecase}_{event},其中:ex為前綴,{bizobj}為業(yè)務(wù)對象(如Car、Dealer),{usecase}為某個業(yè)務(wù)場景,示例:qu_car_promotion_settop;串行或并行的業(yè)務(wù)方案:并行方案:一個事件發(fā)生后,多個消費者相互間沒有依賴關(guān)系,可由exchange分發(fā)消息到多個隊列,由各隊列的消費者并行進行處理;串行方案:一個事件發(fā)生后,多個消費間有先后依賴關(guān)系,可以有先執(zhí)行的消費者處理事件,處理完成后再次發(fā)送消息(此時為另外一個event)到exchange,由后續(xù)的隊列進行處理。規(guī)劃生產(chǎn)者面對exchange,消費者面對queue;規(guī)劃11根據(jù)不同的業(yè)務(wù)顆粒度規(guī)劃virtualhost規(guī)劃:按平臺或系統(tǒng)規(guī)劃Exchange規(guī)劃:按系統(tǒng)規(guī)劃隊列規(guī)劃:按模塊規(guī)劃MQ消費規(guī)劃:按模塊規(guī)劃規(guī)劃根據(jù)不同的業(yè)務(wù)顆粒度規(guī)劃規(guī)劃12案例:新車源營銷案例:新車源營銷13案例:新車源營銷車源營銷置頂:置頂凍結(jié)費用、更新索引曝光判斷計費精準(zhǔn):精準(zhǔn)更新索引點擊判斷計費刷新:刷新更新索引、計費發(fā)車:發(fā)車計費、自動審核更新索引案例:新車源營銷車源營銷14案例:ELK日志平臺案例:ELK日志平臺15案例:ELK日志平臺案例:ELK日志平臺16案例:通知服務(wù)案例:通知服務(wù)17案例:通知服務(wù)案例:通知服務(wù)18第三部分:部分運維實踐第三部分:部分運維實踐19運維實踐安裝配置:服務(wù)器配置集群配置高可用集群配置監(jiān)控運維實踐安裝20安裝Erlang環(huán)境、安裝RabbitMQ啟動rabbitmq,并驗證啟動情況:rabbitmq-server--detached&psaux|greprabbitmq如果啟用了防火墻的話,開啟相關(guān)端口4369(epmd),25672(Erlangdistribution)5672,5671(AMQP0-9-1withoutandwithTLS)15672(ifmanagementpluginisenabled)啟用web界面的監(jiān)控插件:rabbitmq-pluginsenablerabbitmq_management登錄賬號密碼默認都是guest添加用戶rabbitmqctladd_userrabbitmq123456安裝安裝Erlang環(huán)境、安裝RabbitMQ安裝21兩個配置文件:環(huán)境變量的配置文件rabbitmq-env.conf設(shè)置rabbitmq的數(shù)據(jù)存儲位置RABBITMQ_MNESIA_BASE=/data/rabbitmq/data設(shè)置rabbitmq的日志存儲位置RABBITMQ_LOG_BASE=/data/rabbitmq/log配置信息文件rabbitmq.config內(nèi)存閥值,超過時啟動GC
vm_memory_high_watermark,0.6內(nèi)存閥值,超過閥值時內(nèi)存數(shù)據(jù)寫到磁盤vm_memory_high_watermark_paging_ratio,0.5腦裂問題的修復(fù)方式:ignore,autoheal,pause_minoritycluster_partition_handling,autoheal自動加載broker信息{rabbitmq_management,[{load_definitions,"/etc/rabbitmq/rabbitmq_broker.json"}]}配置:服務(wù)配置兩個配置文件:配置:服務(wù)配置22日志切分:編寫shell文件:/opt/scripts/rabbitmq_split_log.sh定時執(zhí)行執(zhí)行crontab–e,加入定時任務(wù)配置:服務(wù)配置日志切分:配置:服務(wù)配置23修改hostname:修改/etc/sysconfig/network設(shè)置.erlang.cookie,基于Erlang的集群來實現(xiàn)cd/var/lib/rabbitmq/echo-n
PXXXXEWPXODAMMALGXXXX>.erlang.cookie打開端口:25672,4369加入集群:sudo
rabbitmqctl
join_cluster
--ram
rabbit@rabbitmq199檢查集群狀態(tài):rabbitmqctlcluster_status設(shè)置鏡像隊列策略從集群中分離在任一節(jié)點執(zhí)行:rabbitmqctlforget_cluster_noderabbit@rabbit1在分離節(jié)點執(zhí)行:rabbitmqctlreset配置:集群配置修改hostname:配置:集群配置24Rabbitmq集群監(jiān)控Rabbitmq集群監(jiān)控25Rabbitmq集群監(jiān)控Rabbitmq集群監(jiān)控26配置:高可用集群配置基于Haproxy+keepalived+rabbitmq實現(xiàn)集群配置:高可用集群配置基于Haproxy+keepalived27Haproxy配置Haproxy日志配置安裝rsyslog添加haproxy的log配置:
vim
/etc/rsyslog.d/haproxy.conf編輯/etc/sysconfig/rsyslog創(chuàng)建日志文件并授權(quán)touchhaproxy.log配置防火墻端口:9188用于haproxy的監(jiān)控界面5670用于rabbimq的負載均衡端口配置haproxy:
/etc/haproxy/haproxy.cfg注意:因為要使用tcp的負載,屏蔽掉與http相關(guān)的默認配置啟動haproxyhaproxy-f/etc/haproxy/haproxy.cfg停止haproxykillallhaproxy配置:高可用集群配置Haproxy配置配置:高可用集群配置28Keepalived配置VRRP:虛擬路由冗余協(xié)議(VirtualRouterRedundancyProtocol)配置文件位置:/etc/keepalived/keepalived.conf配置keepalived
#因為當(dāng)前環(huán)境中VRRP組播有問題,改為使用單播發(fā)送VRRP報文
unicast_src_ip00
unicast_peer{
99
}啟動服務(wù):順序啟動
啟動haproxy:haproxy-f/etc/haproxy/haproxy.cfg
啟動keeepalived:先啟動master節(jié)點,后啟動BACKUP節(jié)點
/etc/init.d/keepalivedstart停止keeepalived服務(wù)
/etc/init.d/keepalivedstop檢查keeepalived的運行日志,默認keepalived的日志位于/var/log/message
tail-n100/var/log/message配置:高可用集群配置Keepalived配置配置:高可用集群配置29配置:高可用集群配置配置:高可用集群配置30謝謝謝謝31RabbitMQ應(yīng)用實踐易車二手車楊偉RabbitMQ應(yīng)用實踐易車二手車楊偉32目錄Rabbitmq介紹應(yīng)用實踐運維實踐目錄Rabbitmq介紹33第一部分:Rabbitmq介紹第一部分:Rabbitmq介紹34開源AMQP實現(xiàn),Erlang語言編寫,支持多種客戶端分布式、高可用、持久化、可靠、安全支持多協(xié)議:AMQP、STOMP、MQTT、HTTPRabbitmq主要概念對象:生產(chǎn)者、消費者、交換機、隊列業(yè)務(wù)解耦:解決多系統(tǒng)、異構(gòu)系統(tǒng)間的數(shù)據(jù)交換,解耦生產(chǎn)者和消費者適用場景:批量數(shù)據(jù)異步處理、并行任務(wù)串行化、高負載任務(wù)負載均衡簡要介紹開源AMQP實現(xiàn),Erlang語言編寫,支持多種客戶端簡要介35AMQP工作原理AMQP,即AdvancedMessageQueuingProtocol,高級消息隊列協(xié)議AMQP工作原理AMQP,即AdvancedMessage36幾個核心概念顆粒度:Broker:消息隊列服務(wù)器實體vhost:虛擬主機,一個broker里可以開設(shè)多個vhostExchange:消息交換機Queue:消息隊列載體消息流轉(zhuǎn):Binding:綁定,根據(jù)路由規(guī)則綁定exchange和queueRoutingKey:路由關(guān)鍵字Connection:連接channel:消息通道,每個連接可建立多個channel關(guān)聯(lián)對象producer:消息生產(chǎn)者consumer:消息消費者幾個核心概念顆粒度:37交換機類型Direct
Exchange
–完全匹配的路由Topic
Exchange
–模式匹配路由Fanout
Exchange
–廣播模式Headers
exchange–鍵值對匹配路由交換機類型Direct
Exchange
–完全匹配的路由38可靠性機制Messageacknowledgment:消息回執(zhí)應(yīng)答機制下:收到回執(zhí)才刪除消息;未收到回執(zhí)而連接斷開,消息會轉(zhuǎn)給其他消費者應(yīng)答機制下:忘記回執(zhí)會導(dǎo)致消息堆積,業(yè)務(wù)重復(fù)處理采用非應(yīng)答機制可以提升隊列處理效率Messagedurability:消息持久化可以避免絕大部分的消息丟失,如服務(wù)重啟采用非持久化機制可以提升隊列處理效率Prefetchcount:每次發(fā)送給消費者消息數(shù)量,默認1,實踐采用2可靠性機制Messageacknowledgment:消息39第二部分:部分應(yīng)用實踐第二部分:部分應(yīng)用實踐40復(fù)用connection、復(fù)用channel如果需要可靠業(yè)務(wù),需要支持持久化和ack機制兩臺虛擬機集群,QPS
>5000次/秒如果希望高吞吐,可以采取非持久化、noack、自動刪除機制兩臺虛擬機集群測試,QPS>20k次/秒穩(wěn)定性保障:生產(chǎn)者異常保障消費者異常保障代碼實現(xiàn)需注意細節(jié)復(fù)用connection、復(fù)用channel代碼實現(xiàn)需注意細41生產(chǎn)者面對exchange,消費者面對queue;一個queue只有一個消費者(可多個副本)進行處理;命名規(guī)劃:exchange:ex_{bizobj}_{usecase},
其中:ex為前綴,{bizobj}為業(yè)務(wù)對象(如Car、Dealer),{usecase}為某個業(yè)務(wù)場景,示例:ex_car_promotion;routekey:對應(yīng)于event(事件,某個業(yè)務(wù)動作),如:置頂(settop)、刷新(refresh)queue:為方便使用,建議對應(yīng)于event(采用exchange+event),如:qu_{bizobj}_{usecase}_{event},其中:ex為前綴,{bizobj}為業(yè)務(wù)對象(如Car、Dealer),{usecase}為某個業(yè)務(wù)場景,示例:qu_car_promotion_settop;串行或并行的業(yè)務(wù)方案:并行方案:一個事件發(fā)生后,多個消費者相互間沒有依賴關(guān)系,可由exchange分發(fā)消息到多個隊列,由各隊列的消費者并行進行處理;串行方案:一個事件發(fā)生后,多個消費間有先后依賴關(guān)系,可以有先執(zhí)行的消費者處理事件,處理完成后再次發(fā)送消息(此時為另外一個event)到exchange,由后續(xù)的隊列進行處理。規(guī)劃生產(chǎn)者面對exchange,消費者面對queue;規(guī)劃42根據(jù)不同的業(yè)務(wù)顆粒度規(guī)劃virtualhost規(guī)劃:按平臺或系統(tǒng)規(guī)劃Exchange規(guī)劃:按系統(tǒng)規(guī)劃隊列規(guī)劃:按模塊規(guī)劃MQ消費規(guī)劃:按模塊規(guī)劃規(guī)劃根據(jù)不同的業(yè)務(wù)顆粒度規(guī)劃規(guī)劃43案例:新車源營銷案例:新車源營銷44案例:新車源營銷車源營銷置頂:置頂凍結(jié)費用、更新索引曝光判斷計費精準(zhǔn):精準(zhǔn)更新索引點擊判斷計費刷新:刷新更新索引、計費發(fā)車:發(fā)車計費、自動審核更新索引案例:新車源營銷車源營銷45案例:ELK日志平臺案例:ELK日志平臺46案例:ELK日志平臺案例:ELK日志平臺47案例:通知服務(wù)案例:通知服務(wù)48案例:通知服務(wù)案例:通知服務(wù)49第三部分:部分運維實踐第三部分:部分運維實踐50運維實踐安裝配置:服務(wù)器配置集群配置高可用集群配置監(jiān)控運維實踐安裝51安裝Erlang環(huán)境、安裝RabbitMQ啟動rabbitmq,并驗證啟動情況:rabbitmq-server--detached&psaux|greprabbitmq如果啟用了防火墻的話,開啟相關(guān)端口4369(epmd),25672(Erlangdistribution)5672,5671(AMQP0-9-1withoutandwithTLS)15672(ifmanagementpluginisenabled)啟用web界面的監(jiān)控插件:rabbitmq-pluginsenablerabbitmq_management登錄賬號密碼默認都是guest添加用戶rabbitmqctladd_userrabbitmq123456安裝安裝Erlang環(huán)境、安裝RabbitMQ安裝52兩個配置文件:環(huán)境變量的配置文件rabbitmq-env.conf設(shè)置rabbitmq的數(shù)據(jù)存儲位置RABBITMQ_MNESIA_BASE=/data/rabbitmq/data設(shè)置rabbitmq的日志存儲位置RABBITMQ_LOG_BASE=/data/rabbitmq/log配置信息文件rabbitmq.config內(nèi)存閥值,超過時啟動GC
vm_memory_high_watermark,0.6內(nèi)存閥值,超過閥值時內(nèi)存數(shù)據(jù)寫到磁盤vm_memory_high_watermark_paging_ratio,0.5腦裂問題的修復(fù)方式:ignore,autoheal,pause_minoritycluster_partition_handling,autoheal自動加載broker信息{rabbitmq_management,[{load_definitions,"/etc/rabbitmq/rabbitmq_broker.json"}]}配置:服務(wù)配置兩個配置文件:配置:服務(wù)配置53日志切分:編寫shell文件:/opt/scripts/rabbitmq_split_log.sh定時執(zhí)行執(zhí)行crontab–e,加入定時任務(wù)配置:服務(wù)配置日志切分:配置:服務(wù)配置54修改hostname:修改/etc/sysconfig/network設(shè)置.erlang.cookie,基于Erlang的集群來實現(xiàn)cd/var/lib/rabbitmq/echo-n
PXXXXEWPXODAMMALGXXXX>.erlang.cookie打開端口:25672,4369加入集群:sudo
rabbitmqctl
join_cluster
--ram
rabbit@rabbitmq199檢查集群狀態(tài):rabbitmqctlcluster_status設(shè)置鏡像隊列策略從集群中分離在任一節(jié)點執(zhí)行:rabbitmqctlforget_cluster_noderabbit@rabbit1在分離節(jié)點執(zhí)行:rabbitmqctlreset配置:集群配置修改hostname:配置:集群配置55Rabbitmq集群監(jiān)控Rabbitmq集群監(jiān)控56Rabbitmq集群監(jiān)控Rabbitmq集群監(jiān)控57配置:高可用集群配置基于Haproxy+keepalived+rabbitmq實現(xiàn)集群配置
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國馬鈴薯全粉行業(yè)市場深度分析及發(fā)展前景與投資機會研究報告(2024-2030版)
- 中國鋁顏料行業(yè)發(fā)展態(tài)勢與競爭格局展望研究研究報告(2024-2030版)
- 中國金融信息化行業(yè)市場深度調(diào)研及競爭格局與投資發(fā)展?jié)摿ρ芯繄蟾妫?024-2030版)
- 中國蛇紋巖行業(yè)競爭態(tài)勢與產(chǎn)銷需求預(yù)測研究報告(2024-2030版)
- 中國航空食品行業(yè)經(jīng)營態(tài)勢及營銷趨勢預(yù)測研究報告(2024-2030版)
- 中國能繁母豬養(yǎng)殖行業(yè)經(jīng)營態(tài)勢及發(fā)展規(guī)劃分析研究報告(2024-2030版)
- 中國絮凝沉淀設(shè)備行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告(2024-2030版)
- 中國碳纖維增強塑料行業(yè)競爭格局與發(fā)展趨勢預(yù)測研究報告(2024-2030版)
- 中國硝酸鈉行業(yè)發(fā)展前景與供需趨勢預(yù)測研究報告(2024-2030版)
- 中國矮壯素行業(yè)競爭策略及投資前景規(guī)劃研究報告(2024-2030版)
- 三角函數(shù)在新舊教材中的對比(全文)
- 總法律顧問述職報告書
- 高速公路機電維護安全培訓(xùn)編制課件
- 急性呼吸窘迫綜合征-PPT(精)
- 等效聲級計算表格工具(高級版)
- 跨文化交際(祖曉梅??主編)學(xué)習(xí)通課后章節(jié)答案期末考試題庫2023年
- 中國高級經(jīng)理人心理狀況調(diào)查報告
- 住院患者非計劃拔管危險因素評估量表
- 少數(shù)民族普通話培訓(xùn)
- 《中國民間故事》知識答題參考題庫(含答案)
- 中小學(xué)生冬季用電防火安全教育PPT
評論
0/150
提交評論