rabbitmq邏輯與開發
MQ邏輯
0.dubbo重試機制,導致消息重發
1.消息區別,多寫個類
2.消息入庫並分類(存入一張表中)
3.分布式事物,用消息隊列來保證,不回滾
4.順序性
5.失敗,怎麽辦
6.消息是事務
7.代碼中啟動消費者消息
8.遠程調用,實現rpc功能
9.池,以及每次只發送1條給服務器,負載均衡
10.消息的順序性
邏輯是最重要的,技術始終是有缺陷的。
代碼實現
http://favccxx.blog.51cto.com/2890523/1703031
表結構
CREATE TABLE `rabbitmq_msg` (
`msg_id` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`unique_code` varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT ‘消息唯一標識:rId + wId + nId‘,
`msg_type` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT ‘消息類型,按流程類型,參考:ProcessTemplate‘,
`content` varchar(2000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT ‘消息內容,便於做事務補償‘,
`refer_id` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`refer_code` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`status` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT ‘消息狀態,0:待處理,1:成功‘,
`create_time` datetime DEFAULT NULL COMMENT ‘創建時間‘
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
具體應用碰到的問題 大牛寫的
1.http://aitanjupt.blog.51cto.com/2839166/1413934
對RabbitMQ使用的關鍵性問題進行的調研,如性能上限、數據存儲、集群
2.http://wangqingpei557.blog.51cto.com/1009349/1881540
RabbitMQ 高可用集群搭建及電商平臺使用經驗總結
本文出自 “要有夢想,萬一實現了呢” 博客,謝絕轉載!
rabbitmq邏輯與開發