RemotingCommand: flag倒数第一位表示请求类型,0请求1返回。倒数第二位1.表示oneway 单条消息发送时,消息体的内容将保存在body种,批量消息发送,需要将多条消息体的内容存储在body中,RocketMQ采取的方式是,对单条消息内容使用固定格式进行存储 ...
分类:
其他好文 时间:
2020-01-17 00:15:26
阅读次数:
90
MQ产品常用的三种协议: 1:JMS rocketMQ,activeMQ 2.AMQP RabbitMq 3.MQTT activeMQ RabbitMQ是AMQP的一种实现。 AMQP是什么? 基本概念 broker:消息代理 producer: 消息的生产者 consumer: 消息的消费者 e ...
分类:
其他好文 时间:
2020-01-16 22:25:32
阅读次数:
93
分布式事务 通过MQ解决分布式事务的思路 1) 业务和消息生成耦合在一起 2) 业务和消息解耦 RocketMQ 中的事务消息 1) 目前RMQ3.2.6中事务消息的实现原理及存在的问题 2) 问题解决思路 本文介绍RocketMQ提供的第三种类型的消息——Transaction Message(事 ...
分类:
其他好文 时间:
2020-01-16 14:54:42
阅读次数:
91
路由发现:缓存中的路由信息什么时候更新呢? 由QueueData转topicPublishInfo的List<QueueMessage>: 选择消息队列: sendLatencyFaultEnable=false,默认不启动Broker故障延迟机制, sendLatenFaultEnable=tru ...
分类:
其他好文 时间:
2020-01-16 00:50:47
阅读次数:
93
钩子的注册: DefaultMQProducerImpl#registerSendMessageHook注册钩子处理类,可注册多个。 public SendResult sendMessage( final String addr, final String brokerName, final Me ...
分类:
其他好文 时间:
2020-01-16 00:50:30
阅读次数:
93
packagecom.adtec.mq;importjava.security.MessageDigest;publicclassmd5Utils{privateString[]hexDigits={"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};publicStringmd5Digest(Stringsrc){tr
分类:
其他好文 时间:
2020-01-15 19:18:42
阅读次数:
71
文章目录 一、 Producer端重试 二、 Consumer端重试 1. Exception 2. Timeout总结 对于MQ,可能存在各种异常情况,导致消息无法最终被Consumer消费掉,因此就有了消息失败重试机制。很显示,消息重试分为2种:Producer端重试和Consumer端重试。 ...
分类:
其他好文 时间:
2020-01-15 19:11:14
阅读次数:
95
消息队列核心使用场景:削峰,解耦,异步 MQ的好处 削峰: 比如抢购秒杀,不在这个点上的时候,可能每秒只有50次请求,但是开始秒杀的时候每秒的请求数可能可以达到上万次,如果这些操作直接落点在数据库上, 拿MYSQL来说,一般MYSQL一秒最多可以处理2000条请求,一秒上万的请求基本直接就把服务器给 ...
分类:
其他好文 时间:
2020-01-14 16:30:44
阅读次数:
93
FAQ Q: 如何确保消息不丢失? Q: mq 的缺点 Q: 如何避免消息重复投递或重复消费? 在消息 时,MQ 内部针对每条生产者发送的消息生成一个 inner msg id,作为去重的依据(消息投递失败并重传),避免重复的消息进入队列; 在消息 时,要求消息体中必须要有一个 bizId(对于同一 ...
分类:
其他好文 时间:
2020-01-13 19:40:08
阅读次数:
63
SpringBoot整合RabbitMQ 入门2020-01-12 创建生产者类,并且在yml配置文件中配置5要素连接MQ yml配置文件 spring: rabbitmq: host: xx.xx.xx.xx port: 5672 virtual-host: / username: 默认guest ...
分类:
编程语言 时间:
2020-01-12 09:28:07
阅读次数:
85