草庐IT

RocketMq-RocketMQMessageListener

全部标签

RocketMQ 5.0 时代,6 张图带你理解 Proxy!

大家好,我是君哥。今天来聊一聊RocketMQ5.0中的Proxy。RocketMQ5.0为了更好地拥抱云原生,引入了无状态的Proxy模块,新的架构图如下:引入Proxy模块后,Proxy承担了协议适配、权限管理、消息管理等计算功能,Broker则更加专注于存储。这样存储和计算相分离,在云原生环境下可以更好地进行资源调度。1、Proxy介绍RocketMQ5.0 把客户端的部分功能下沉到Proxy,Proxy承接了之前 客户端的计算能力,客户端变得更加轻量级。(1)NameServer从上面的架构图可以看到,Producer/Consumer不再需要注册到NameServer,这一部分功能下

RocketMQ 5.0 时代,6 张图带你理解 Proxy!

大家好,我是君哥。今天来聊一聊RocketMQ5.0中的Proxy。RocketMQ5.0为了更好地拥抱云原生,引入了无状态的Proxy模块,新的架构图如下:引入Proxy模块后,Proxy承担了协议适配、权限管理、消息管理等计算功能,Broker则更加专注于存储。这样存储和计算相分离,在云原生环境下可以更好地进行资源调度。1、Proxy介绍RocketMQ5.0 把客户端的部分功能下沉到Proxy,Proxy承接了之前 客户端的计算能力,客户端变得更加轻量级。(1)NameServer从上面的架构图可以看到,Producer/Consumer不再需要注册到NameServer,这一部分功能下

【RocketMQ】顺序消息实现原理

全局有序在RocketMQ中,如果使消息全局有序,可以为Topic设置一个消息队列,使用一个生产者单线程发送数据,消费者端也使用单线程进行消费,从而保证消息的全局有序,但是这种方式效率低,一般不使用。局部有序假设一个Topic分配了两个消息队列,生产者在发送消息的时候,可以对消息设置一个路由ID,比如想保证一个订单的相关消息有序,那么就使用订单ID当做路由ID,在发送消息的时候,通过订单ID对消息队列的个数取余,根据取余结果选择消息队列,这样同一个订单的数据就可以保证发送到一个消息队列中,消费者端使用MessageListenerOrderly处理有序消息,这就是RocketMQ的局部有序,保

【RocketMQ】顺序消息实现原理

全局有序在RocketMQ中,如果使消息全局有序,可以为Topic设置一个消息队列,使用一个生产者单线程发送数据,消费者端也使用单线程进行消费,从而保证消息的全局有序,但是这种方式效率低,一般不使用。局部有序假设一个Topic分配了两个消息队列,生产者在发送消息的时候,可以对消息设置一个路由ID,比如想保证一个订单的相关消息有序,那么就使用订单ID当做路由ID,在发送消息的时候,通过订单ID对消息队列的个数取余,根据取余结果选择消息队列,这样同一个订单的数据就可以保证发送到一个消息队列中,消费者端使用MessageListenerOrderly处理有序消息,这就是RocketMQ的局部有序,保

终于弄明白了 RocketMQ 的存储模型

RocketMQ优异的性能表现,必然绕不开其优秀的存储模型。这篇文章,笔者按照自己的理解,尝试分析RocketMQ的存储模型,希望对大家有所启发。1整体概览首先温习下RocketMQ架构。整体架构中包含四种角色:Producer:消息发布的角色,Producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟。Consumer:消息消费的角色,支持以push推,pull拉两种模式对消息进行消费。NameServer:名字服务是一个非常简单的Topic路由注册中心,其角色类似Dubbo中的zookeeper,支持Broker的动态注册与发现。Br

终于弄明白了 RocketMQ 的存储模型

RocketMQ优异的性能表现,必然绕不开其优秀的存储模型。这篇文章,笔者按照自己的理解,尝试分析RocketMQ的存储模型,希望对大家有所启发。1整体概览首先温习下RocketMQ架构。整体架构中包含四种角色:Producer:消息发布的角色,Producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟。Consumer:消息消费的角色,支持以push推,pull拉两种模式对消息进行消费。NameServer:名字服务是一个非常简单的Topic路由注册中心,其角色类似Dubbo中的zookeeper,支持Broker的动态注册与发现。Br

RocketMQ 5.0 多语言客户端的设计与实现

本文作者:古崟佑,阿里云中间件开发。 RocketMQ5.0版本拥有非常多新特性,比如存储计算分离、batch能力的提升等,它是具有里程碑意义的版本。提到新版本,我们往往会首先想到服务端架构的设计变动,很容易忽略客户端的设计理念。客户端也是消息产品的必要组成部分,许多特性需要client与server两端互相协作,才能更好地实现。轻量化、云原生以及统一模型是RocketMQ5.0客户端的三个设计理念。 01轻量化轻量化的重点在于轻逻辑、轻流程,化繁为简,减少多语言生态发展的阻碍。上图列举了RocketMQ4.x版本和RocketMQ5.0版本的差异。①4.x版本的序列化使用JsonCodecs

RocketMQ 5.0 多语言客户端的设计与实现

本文作者:古崟佑,阿里云中间件开发。 RocketMQ5.0版本拥有非常多新特性,比如存储计算分离、batch能力的提升等,它是具有里程碑意义的版本。提到新版本,我们往往会首先想到服务端架构的设计变动,很容易忽略客户端的设计理念。客户端也是消息产品的必要组成部分,许多特性需要client与server两端互相协作,才能更好地实现。轻量化、云原生以及统一模型是RocketMQ5.0客户端的三个设计理念。 01轻量化轻量化的重点在于轻逻辑、轻流程,化繁为简,减少多语言生态发展的阻碍。上图列举了RocketMQ4.x版本和RocketMQ5.0版本的差异。①4.x版本的序列化使用JsonCodecs

Apache RocketMQ 5.0 笔记

RocketMQ5.0:云原生“消息、事件、流”实时数据处理平台,覆盖云边端一体化数据处理场景。核心特性云原生:生与云,长与云,无限弹性扩缩,K8s友好高吞吐:万亿级吞吐保证,同时满足微服务与大数据场景流处理:提供轻量、高扩展、高性能和丰富功能的流计算引擎金融级:金融级的稳定性,广泛用于交易核心链路架构极简:零外部依赖,Shared-nothing架构生态友好:无缝对接微服务、实时计算、数据湖等周边生态1.基本概念1、消息由生产者初始化并发送到ApacheRocketMQ服务端。2、消息按照到达ApacheRocketMQ服务端的顺序存储到主题的指定队列中。3、消费者按照指定的订阅关系从Apa

Apache RocketMQ 5.0 笔记

RocketMQ5.0:云原生“消息、事件、流”实时数据处理平台,覆盖云边端一体化数据处理场景。核心特性云原生:生与云,长与云,无限弹性扩缩,K8s友好高吞吐:万亿级吞吐保证,同时满足微服务与大数据场景流处理:提供轻量、高扩展、高性能和丰富功能的流计算引擎金融级:金融级的稳定性,广泛用于交易核心链路架构极简:零外部依赖,Shared-nothing架构生态友好:无缝对接微服务、实时计算、数据湖等周边生态1.基本概念1、消息由生产者初始化并发送到ApacheRocketMQ服务端。2、消息按照到达ApacheRocketMQ服务端的顺序存储到主题的指定队列中。3、消费者按照指定的订阅关系从Apa