使用消息中間件的場(chǎng)景:
- 異步:
例如用戶注冊(cè)成功后需要將用戶數(shù)據(jù)入庫喧笔,并且發(fā)送郵件和短信提示避矢,可以在數(shù)據(jù)入庫后立即響應(yīng)用戶悼瘾,然后發(fā)送消息到mq中執(zhí)行發(fā)送郵件和短信的操作囊榜。 - 解耦:
用戶下單成功,發(fā)送一條減少庫存的消息到mq中亥宿。 - 流量削峰:
比如10W人搶購10個(gè)商品卸勺,在Mq中可以設(shè)置隊(duì)列的長度為10,后面來的請(qǐng)求直接舍棄掉烫扼,降低DB的壓力曙求。
常見的MQ:
- amq:性能不好,容易產(chǎn)生消息堆積
- kafaka:容易丟失消息映企,可以用來做日志收集
- rabbitmq:erlang語言寫的悟狱,性能比amq好,穩(wěn)定性比rabbimq好堰氓,裝環(huán)境注意版本號(hào)匹配
- rmq:(阿里)消息穩(wěn)定挤渐,速度快(收費(fèi))