天天看點

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 高可用叢集搭建及電商平台使用經驗總結

本文轉自 liqius 51CTO部落格,原文連結:http://blog.51cto.com/szgb17/1943230,如需轉載請自行聯系原作者