分布式消處理rabbitmq資源java3y_第1頁
分布式消處理rabbitmq資源java3y_第2頁
分布式消處理rabbitmq資源java3y_第3頁
分布式消處理rabbitmq資源java3y_第4頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、分布式消處理RabbitMQ授課老師:David老師 學(xué)習(xí)資料獲?。?123479036本章目標(biāo)Rabbitmq簡介Rabbitmq centos下安裝Rabbitmq java api使用Rabbitmq spring boot集成Rabbitmq簡介-歷史RabbitMQ是一個由erlang開發(fā)的AMQP(Advanced Message Queue )的開源實現(xiàn)。AMQP 的出現(xiàn)其實也是應(yīng)了廣大人民群眾的需求,雖然在同步消息通訊的世界里有很多公開標(biāo)準(zhǔn)(如 COBAR的 IIOP ,或者是 SOAP 等),但是在異步消息處理中卻不是這樣,只有大企業(yè)有一些商業(yè)實現(xiàn)(如微軟的 MSMQ ,IB

2、M 的 Websphere MQ 等),因此,在 2006 年的 6 月,Cisco 、Redhat、iMatix 等聯(lián)合制定了 AMQP 的公開標(biāo)準(zhǔn)。 RabbitMQ是由RabbitMQ Technologies Ltd開發(fā)并且提供商業(yè)支持的。該公司在2010年4月被SpringSource(VMWare的一個部門)收購。在2013年5月被并入Pivotal。其實VMWare,Pivotal和EMC本質(zhì)上是一家的。不同的是VMWare是獨立上市子公司,而Pivotal是整合了EMC的某些資源,現(xiàn)在并沒有上市。 RabbitMQ的官網(wǎng)是 Rabbitmq簡介-應(yīng)用場景對于一個大型的軟件系統(tǒng)來

3、說,它會有很多的組件或者說模塊或者說子系統(tǒng)或者(subsystem or Component or submodule)。那么這些模塊的如何通信?這和傳統(tǒng)的IPC有很大的區(qū)別。傳統(tǒng)的IPC很多都是在單一系統(tǒng)上的,模塊耦合性很大,不適合擴(kuò)展(Scalability);如果使用socket那么不同的模塊的確可以部署到不同的機(jī)器上,但是還是有很多問題需要解決。比如:1)信息的發(fā)送者和接收者如何維持這個連接,如果一方的連接中斷,這期間的數(shù)據(jù)如何方式丟失?2)如何降低發(fā)送者和接收者的耦合度?3)如何讓Priority高的接收者先接到數(shù)據(jù)?4)如何做到load balance?有效均衡接收者的負(fù)載?5)如

4、何有效的將數(shù)據(jù)發(fā)送到相關(guān)的接收者?也就是說將接收者subscribe 不同的數(shù)據(jù),如何做有效的filter。6)如何做到可擴(kuò)展,甚至將這個通信模塊發(fā)到cluster上?7)如何保證接收者接收到了完整,正確的數(shù)據(jù)? AMDQ協(xié)議解決了以上的問題,而RabbitMQ實現(xiàn)了AMQPRabbitmq簡介-架構(gòu)Rabbitmq簡介-架構(gòu)RabbitMQ Server: 也叫broker server,它不是運(yùn)送食物的卡車,而是一種傳輸服務(wù)。原話是RabbitMQisnt a food truck, its a delivery service. 他的角色就是維護(hù)一條從Producer到Consumer的

5、路線,保證數(shù)據(jù)能夠按照指定的方式進(jìn)行傳輸。但是這個保證也不是100%的保證,但是對于普通的應(yīng)用來說這已經(jīng)足夠了。當(dāng)然對于商業(yè)系統(tǒng)來說,可以再做一層數(shù)據(jù)一致性的guard,就可以徹底保證系統(tǒng)的一致性了。Client A & B: 也叫Producer,數(shù)據(jù)的發(fā)送方。createmessages and publish (send) them to a broker server (RabbitMQ).一個Message有兩個部分:payload(有效載荷)和label(標(biāo)簽)。payload顧名思義就是傳輸?shù)臄?shù)據(jù)。label是exchange的名字或者說是一個tag,它描述了payload,而且

6、RabbitMQ也是通過這個label來決定把這個Message發(fā)給哪個Consumer。AMQP僅僅描述了label,而RabbitMQ決定了如何使用這個label的規(guī)則。Rabbitmq簡介-架構(gòu)Client 1,2,3:也叫Consumer,數(shù)據(jù)的接收方。Consumersattach to a broker server (RabbitMQ) and subscribe to a queue。把queue比作是一個有名字的郵箱。當(dāng)有Message到達(dá)某個郵箱后,RabbitMQ把它發(fā)送給它的某個訂閱者即Consumer。當(dāng)然可能會把同一個Message發(fā)送給很多的Consumer。在這

7、個Message中,只有payload,label已經(jīng)被刪掉了。對于Consumer來說,它是不知道誰發(fā)送的這個信息的。就是協(xié)議本身不支持。但是當(dāng)然了如果Producer發(fā)送的payload包含了Producer的信息就另當(dāng)別論了。Exchanges are where producers publish their messages. Queuesare where the messages end up and are received by consumers Bindings are how the messages get routed from the exchange to pa

8、rticular queues.Connection: 就是一個TCP的連接。Producer和Consumer都是通過TCP連接到RabbitMQ Server的。以后我們可以看到,程序的起始處就是建立這個TCP連接。 Channels: 虛擬連接。它建立在上述的TCP連接中。數(shù)據(jù)流動都是在Channel中進(jìn)行的。也就是說,一般情況是程序起始建立TCP連接,第二步就是建立這個Channel。rabbitmq安裝安裝erlang 下載wget 解壓 tar -zvxf otp_src_19.3.tar.gz配置安裝路徑:./configure -prefix=/usr/local/devtoo

9、ls/erlang/執(zhí)行編譯:make & make install配置環(huán)境變理Vi etc/profileexport ERLANG_HOME=/usr/local/devtools/erlangexport PATH=$ERLANG_HOME/bin:$PATHsource profile另一種安裝方法下載 wget 安裝 yum install esl-erlang_19.3-1centos7_amd64.rpm -installroot =/usr/local/devtools/erlangrabbitmq安裝下載: wget 解壓 xz d rabbitmq-server-gener

10、ic-unix-3.6.8.tar.xztar svxf rabbitmq-server-generic-unix-3.6.8.tar.xz配置環(huán)境變量Vi etc/profileexport RABBITMQ_HOMEccexport PATHRABBITMQ_HOME/sbin:$PATHcSource profile另一種安裝 yum install rabbitmq-server-3.6.8-1.el7.noarch.rpm installroot =/usr/local/devtools/rabbitmqrabbitmq安裝啟動服務(wù)rabbitmq-server detached查看服務(wù)狀態(tài)rabbitmqctl status關(guān)閉服務(wù)rabbitmqctl stop配網(wǎng)頁插件mkdir /etc/rabbitmqrabbitmq-plugins enable rabbitmq_management配置遠(yuǎ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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論