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