面試題目一大鍋附件rabbitmq_第1頁
面試題目一大鍋附件rabbitmq_第2頁
面試題目一大鍋附件rabbitmq_第3頁
面試題目一大鍋附件rabbitmq_第4頁
面試題目一大鍋附件rabbitmq_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

重點掌握息隊列應(yīng)用場景種工作場景說明:用戶后,需要發(fā)郵件和。傳統(tǒng)的做法有兩種串行的方式;2.a、串行方式:將信息寫入數(shù)據(jù)庫成功后,發(fā)送郵件,再發(fā)送b、并行方式:將信息寫入數(shù)據(jù)庫成功后,發(fā)送郵件的同時,發(fā)送50150100CPUCPU11001CPU7(1000/150)。并行方式處10(1000/100)按照以上約定,用戶的響應(yīng)時間相當于是信息寫入數(shù)據(jù)庫的時間,也就是50毫秒。郵件,寫入消息隊列后,直接返回,因此寫入消息隊列50變后,系統(tǒng)的吞吐量提高到每秒20QPS。比串行提高了3倍,比并行提高了兩傳統(tǒng)模式的缺點:假如庫存系統(tǒng)無法,則訂單減庫存將失敗,從而導(dǎo)致訂日志處理是指將消息隊列用在日志處理中,比如Kafka的應(yīng)用,解決大量日志日志客戶端,負責(zé)日志,定時寫受寫入Kafka隊Kafka消息隊列,負責(zé)日志數(shù)據(jù)的接收,和轉(zhuǎn)發(fā)kafkaActiveMQ是Apache,最流行的,能力強勁的開源消息總線。ActiveMQJMS1.1J2EE1.4JMSProvider實現(xiàn)。我們在本次課程中介紹ActiveMQ的使用。AMQP協(xié)議的實現(xiàn),支持多種場景。淘寶的MySQL集群內(nèi)部有使用它進行通訊,OpenStackApache10W/s的吞吐速率;完全的分布式系統(tǒng)。適合處理海量數(shù)據(jù)。JMSAMQP區(qū)JMSjava的接口規(guī)范,java應(yīng)用提供統(tǒng)一的消息操作。類似于JDBC,用戶都是根據(jù)相應(yīng)的接口可以了JMS的服務(wù)進行通信,進行相關(guān)JMS是API規(guī)范,具有接口開發(fā)的特點:程序結(jié)構(gòu)清晰,使用方便,有利于程AMQP是一種協(xié)議,與JMS的本質(zhì)差別是AMQP不從API層進行限定,而是直接定義網(wǎng)絡(luò)交換的數(shù)據(jù)格式。這使得實現(xiàn)了AMQP的provider天然性就是跨平臺Java的AMQPprovider,同時使用一個pythonproducer加一個rubbyconsumer。其類似于http協(xié)議,不同語言實現(xiàn)的客戶端凡是遵守http協(xié)議的都可以跟web服RabbitMQexchage、queueConnectionRabbitMQAMQPConnectionRabbitMQ產(chǎn)消息,那么必然需要建立很多個Connection,也就是多個TCP連接。然而對于操作系統(tǒng)而言,建立和銷毀TCP連接是非常昂貴的開銷,如果遇到使用,性Connection效地節(jié)省TCP連接資源。但是信道本身的流量很大時,這時候多個信道復(fù)用一個Connection就會產(chǎn)生性能瓶頸,進而使整體的流量被限制了。此時就需要開辟多個ConnectionConnectionroutingkeyroutingkeyqueue。topicroutingkey通配符:*0RabbitMQ的高可用性?簡queue了,還可以通過其它節(jié)點對外提供服務(wù)。答的好,就詳細講解一下下面的內(nèi)容。RabbitMQ單機模式、普通集群模式、鏡像集群模式。普通集群模式(無高可用性普通集群模式,意思就是在多臺機器上啟動多個RabbitMQ實例,每個機器啟動一個。你創(chuàng)建的queue,只會放在一個RabbitMQ實例上,但是每個實例都同步queue的元數(shù)據(jù)(元數(shù)據(jù)可以認為是queue的一些配置信息,通過元數(shù)queue)。你消費的時候,實際上如果連接到了另外一個實例,那么那個實例會從queue所在實例上拉取數(shù)據(jù)過來。queuequeue例拉取,如果你開啟了消息持久化,讓RabbitMQ落地消息的話,消息不一定會丟,得等這個實例恢復(fù)了,然后才可以繼續(xù)從這個queue拉取數(shù)據(jù)。群中多個節(jié)點來服務(wù)某個queue的讀寫操作鏡像集群模式(高可用性這種模式,才是所謂的RabbitMQqueue,queue會存在于多個實例RabbitMQqueue整鏡像,包含queue的全部數(shù)據(jù)的意思。然后每次你寫消息到queue的時候,都會自動把消息同步到多個實例的queue那么如何開啟這個鏡像集群模式呢?其實很簡單,RabbitMQ臺,就是在新增一個策略,這個策略是鏡像集群模式的策略,指定的時候創(chuàng)建queue的時候,應(yīng)用這個策略,就會自動將數(shù)據(jù)同步到其他的節(jié)點上去queueconsumer消耗很重!第二,,queue載很重queuequeuequeueconfirm從生產(chǎn)者弄丟數(shù)據(jù)這個角度來看,RabbitMQtransactionconfirmtransaction模式:發(fā)送消息前,開啟事物(channel.txSelect()),然后發(fā)送 try{channel.basicPublish(exchange,routingKey,MessageProperties.PERSISTENT_TEXT_IN,msg.getBytes());intresult=1/0;}catch(Exceptione)}comfirm:confirm(發(fā)送方確認模式),則所有在信道上發(fā)布的ID。一旦消息被投遞到目的隊列后,或者消息被寫入磁盤后(可持久化的消息),信道會發(fā)送一ack產(chǎn)者(ID)RabbitMQ發(fā)生內(nèi)部錯誤從而導(dǎo)致消息丟失,會發(fā)送一nack(notacknowledged,未確認)消息。queueackpublisherconfirmpublishermessagemessagechannelconfirm模式詳③不確認模式,acknowledge="none"消息數(shù)據(jù)confirmAck樣,如果消息持久化磁盤之前,rabbitMQAck創(chuàng)建queueRabbitMQqueuequeuedeliveryMode設(shè)置為RabbitMQ這樣設(shè)置以后,rabbitMQmirrored-queue RabbitMQ:queue,consumerRabbitMQ三條數(shù)據(jù),順序依次是data1/data2/data3,壓入的是RabbitMQ的一個隊列。有三個消費者分別從MQ2data2data1/data3,這就導(dǎo)致數(shù)據(jù)沒有按在網(wǎng)購的時候,我們需要下單,那么下單需要假三個順序,第一、創(chuàng)建訂單,第二:routingkey,queuecal(orderid)%5=[0,1,2,3,4]ackrabbitmqID果消息已處理這不再進行消費,直接ack回復(fù)mq。這里我們可以使用redi

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論