Service Mesh 下 RocketMQ 消息的发送与消费过程是什么样的?
过程为:
(1)Pilot 获取到 Topic 的路由信息并通过 xDS 的形式下发给数据平面/Envoy , Envoy 会代理 SDK 向 Broker/Nameserver 发送的所有的网络请求;
(2)发送时,Envoy 通过 request code 判断出请求为发送,并根据 topic 和 request code 选出对应的 CDS,然后通过 Envoy 提供的负载均衡策略选出对应的 Broker 并发送,这里会使用数据平面的 subset 机制来确保选出的 Broker 是可写的;
(3)消费时,Envoy 通过 request code 判断出请求为消费,并根据 topic 和 request code 选出对应的 CDS,然后和发送一样选出对应的 Broker 进行消费(与发送类 似,这里也会使用 subset 来确保选出的 Broker 是可读的),并记录相应的元数 据,当消息消费 SDK 发出 ACK 请求时会取出相应的元数据信息进行比对,再通 过路由来准确将 ACK 请求发往上次消费时所使用的 Broker。
资料来源:《云原生消息队列 Apache RocketMQ》,下载链接:https://developer.aliyun.com/topic/download?id=1217。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。