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 高可用集群搭建及电商平台使用经验总结