更新時(shí)間:2018年09月06日17時(shí)56分 來(lái)源:傳智播客 瀏覽次數(shù):
1、ActiviMq消息隊(duì)列,解決了服務(wù)解耦合的動(dòng)作,緩解了服務(wù)并發(fā)量很大,造成服務(wù)器無(wú)法處理的狀況。(kafka、rabbitMQ、activiMQ)
其他作用:異步處理、消息通訊、流量消峰、應(yīng)用解耦
應(yīng)用場(chǎng)景:
1、用戶注冊(cè)的時(shí)候,重點(diǎn)內(nèi)容是將用戶信息保存到數(shù)據(jù)庫(kù)中,發(fā)短信驗(yàn)證或者是發(fā)郵件增加了業(yè)務(wù)的復(fù)雜度。這時(shí)使用MQ將發(fā)短信、發(fā)郵件通知MQ由另外的服務(wù)平臺(tái)完成。
2、搜索平臺(tái)、緩存平臺(tái)
查詢數(shù)據(jù),建立緩存、索引,不從數(shù)據(jù)庫(kù)查詢,從緩存或者索引庫(kù)查詢,當(dāng)數(shù)據(jù)庫(kù)發(fā)生增加、修改、刪除操作時(shí)發(fā)消息給MQ,緩存平臺(tái)或者是索引平臺(tái)從MQ獲取到這個(gè)消息,更新緩存或者索引。
·ActiveMQ使用的是標(biāo)準(zhǔn)的生產(chǎn)者(完成生產(chǎn)消息并發(fā)送消息)和消費(fèi)者(獲取消息,完成自己的業(yè)務(wù)邏輯)模型
·有兩種數(shù)據(jù)結(jié)構(gòu)
·Topic(發(fā)布訂閱) 一個(gè)生產(chǎn)者對(duì)應(yīng)多個(gè)消費(fèi)者,消息默認(rèn)不會(huì)持久化,需要手動(dòng)配置持久化。如果A服務(wù)器掛了,再生產(chǎn)一條消息的話,會(huì)被B服務(wù)器拿去使用,就算重新啟動(dòng),A服務(wù)器也不會(huì)再拿到消息了
商品系統(tǒng)、庫(kù)存系統(tǒng)、生成商品詳情頁(yè)面的系統(tǒng),現(xiàn)在要添加一個(gè)商品信息,消息肯定是需要讓庫(kù)存系統(tǒng)以及商品信息詳情頁(yè)面系統(tǒng)知道的。
·Queue(點(diǎn)對(duì)點(diǎn))一個(gè)生產(chǎn)者對(duì)應(yīng)一個(gè)消費(fèi)者,默認(rèn)消息持久化
StringMessage
mapMessage
byteMessage
objectMessage
要完成topic模式的消息持久化,需要保證每個(gè)消費(fèi)者有唯一的clientID
首發(fā):http://java.itcast.cn
北京校區(qū)