rocketmq 消息 自定义_RocketMQ的消息发送及消费

本文详细介绍了RocketMQ的消息发送模式,包括同步、异步和单向发送。还讨论了RocketMQ的顺序消费,通过MessageQueueSelector实现消息的定制分发。此外,文章还涵盖了消息的可靠性和消费确认机制,包括重试和死信队列,以及延迟消息的实现。
摘要由CSDN通过智能技术生成

RocketMQ消息支持的模式:

消息支持的模式分为三种:NormalProducer(普通同步),消息异步发送,OneWay。

消息同步发送:

普通消息的发送和接收在前面已经演示过了,在前面的案例中是基于同步消息发送模式。也就是说消息发送出去后,producer会等到broker回应后才能继续发送下一个消息.

消息异步发送:

异步发送是指发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。 MQ 的异步发送,需要用户实现异步发送回调接口(SendCallback)。消息发送方在发送了一条消息后,不需要等待服务器响应即可返回,进行第二条消息发送。发送方通过回调接口接收服务器响应,并对响应结果进行处理。

producer.send(msg, newSendCallback() {

@Overridepublic voidonSuccess(SendResult sendResult) {

System.out.printf("%s%n",sendResult);

}

@Overridepublic voidonException(Throwable throwable) {

throwable.printStackTrace();

}

});

OneWay:

单向(Oneway)发送特点为发送方只负责发送消息,不等待服务器回应且没有回调函数触发,即只发送请求不等待应答.效率最高。

producer.sendOneway(msg);

MessageListenerOrderly(顺序消费):

在学习kafka的时候我们知道了,消息可以通过自定义分区策略来实现消息的顺序发送,实现原理就是把同一类消息都发送到相同的分区上。在RocketMQ中,是基于多个Message Queue来实现类似于kafka的分区效果。如果一个Topic 要发送和接收的数据量非常大, 需要能支持增加并行处理的机器来提高处理速度,这时候一个Topic 可以根据需求设置一个或多个Message Queue。Topic 有了多个Message Queue 后,消息可以并行地向各个Message Queue 发送,消费者也可以并行地从多个Message Queue 读取消息并消费。要了解RocketMQ消息的顺序消费,我们先对RocketMQ的整体架构进行了解。

RocketMQ消息发送及消费的基本原理:

这是一个比较宏观的部署架构图,rocketmq天然支持高可用,它可以支持多主多从的部署架构,这也是和kafka最大的区别之一。原因是RocketMQ中并没有master选举功能,所以通过配置多个master节点来保证rocketM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值