一、发送模式 & 消费模式
1.1、各种各样的发送模式
作为经历了历年双11、双12场景下的RocketMQ,其吞吐能力和稳定性对于广大开发者们不言而喻!其实RocketMQ还为开发者们提供了丰富的消息发送模式,使开发者们能够灵活的将这些消息模式应用到自己公司的业务中去,大致可以分为如下几种:同步消息、异步消息、单向消息、延迟消息、批量消息、顺序消息、带标签的消息、带key的消息、事务消息等。
1.2、消费模式
既然有消息生产者发送消息,那肯定也得有消息消费者,再说到消费者时,需要先了解一下RocketMQ中消息的消费模式。RocketMQ的消费模式大致可以分为两种,即:Push(推)、Pull(拉),那么它们之间有什么区别呢?
Push模式是服务端主动推送消息给客户端,优点是及时性较好,但是如果客户端没有做好流控,一旦服务端推送大量消息到客户端时,就会导致客户端消息堆积甚至崩溃;Pull模式是客户端主动向服务端索取数据,优点是客户端可以依据自己的消费能力进行消费,但是拉取的频率需要由用户自己控制,拉取频繁容易造成服务端和客户端的压力,拉取间隔长又容易造成消费不及时;
其实不管消费者是采取Push模式还是Pull模式进行拉取数据,其底层原理是不变的,底层的Push模式也是基于Pull模式的,只不过客户端内部封装了api,一般场景下,上游消息生产量小或者均速的时候,选择Push模式,在特殊场景例如:电商大促,抢优惠券等场景可以选择Pull模式。