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