使用場景,將耗時的通知業務交給消息中間件【業務邏輯進行解耦】redis
使用消息中間件的邏輯交互apache
首先消息中間件是一個異步處理瀏覽器
有兩個關鍵點:①耗時;②業務的耦合度session
案例1:註冊某網站會員成功,短信通知成功,這個就能夠直接交給消息中間件異步
案例2:註冊某網站會員,須要使用手機驗證碼,這個就不能使用消息中間件,業務必須使用【緣由:消息中間件是異步執行的,可能致使收不到驗證碼】ide
redis、ActivityMQ、RocketMQ(nameSrv)【阿里巴巴使用】、Kafka【zookeeper】、RabbitMQ、ZerOMQ網站
http://activemq.apache.org/components/classic/download/3d
在瀏覽器中登陸localhost:8161 初始帳號:admin,密碼:admin日誌
查看端口:8161;消息服務端口:61616component
自動簽收、手動簽收【massage.acknowledge()】、事務簽收【session.commit()】、
防止信息重複消費
①消費者代碼不要拋出異常,不然activeMQ默認有重試機制;
②若是代碼發生異常,須要發佈版本才能夠解決問題,不要使用重試機制,採用日誌記錄方式,定時Job進行補償;
③若是不須要發佈版本解決的問題,能夠採用重試機制進行補償。