【RocketMQ】RocketMQ5.0新特性(一)- Proxy

这篇具有很好参考价值的文章主要介绍了【RocketMQ】RocketMQ5.0新特性(一)- Proxy。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为了向云原生演进,提高资源利用和弹性能力,RocketMQ在5.0进行了架构的调整与升级,先来看新特性之一,增加了Proxy层。

增加Proxy代理层

计算存储分离
计算存储分离是一种分层架构,将计算层与存储层分开。
计算层指的是一些消耗计算资源的功能模块比如协议解析、消费管理等,存储指的是数据存储层,比如数据的存储格式、存储设计等与数据存储相关的功能。

应用通信协议
应用通信协议一般会包含协议头和协议体两部分。
协议头:主要是一些通用的信息,比如协议版本、请求标识、客户端信息等;
协议体:本次通信具体的数据内容,规定了数据的传输格式,比如数据是字符串、JSON格式数据或者二进制数据等;

RocketMQ 5.0以前架构
RocketMQ 5.0以前使用自定义的Remoting协议底层基于Netty进行网络通信,计算存储是一体的,都在Broker中,生产者和消费者从NameServer中拉取到路由信息,之后直接与Broker交互进行消息的生产与消费:
【RocketMQ】RocketMQ5.0新特性(一)- Proxy

存在问题
(1)计算层和存储层都在Broker中,没有进行分离,不利于在云原生环境下实现弹性调度;
(2)Remoting协议是私有协议,每支持一种新的语言,一些基础的工作(比如网络通信、编解码)都需要重新开发,开发和维护成本高;

RocketMQ 5.0架构
5.0以后引入了弹性无状态的代理模式,对Broker的职责进行了拆分,将客户端协议适配、权限管理、消费管理等计算逻辑进行了抽离,放入Proxy层,Broker专注数据的存储,以便更好的适应云原生环境,实现资源弹性调度,并且5.0以后增加了gRPC(Google Remote Procedure Call)协议的支持,它是Google开源的高性能RPC框架,基于Protobuf序列化。
【RocketMQ】RocketMQ5.0新特性(一)- Proxy

从架构上来看,增加Proxy代理层后,生产者和消费者不再直接与Broker通信,而是与Proxy层通信,Proxy层再与NameServer和Broker交互进行消息的发送和消费,如果需要提高计算层的能力,只需要增加Proxy层,如果需要提高存储层的能力,增加Broker的部署即可。

gRPC协议是公有协议,底层已经实现了网络通信、编解码等基础框架,提供了各个语言的开发库,使用非常轻便,在RocketMQ新增语言支持时可以省去繁杂重复的工作。

部署方式
在5.0版本中分为Local模式和Cluster模式。

  • Local模式:Broker和Proxy同进程部署,在部署时需要在原有的Broker配置上增加Proxy相关的配置,以Local模式运行可以实现与5.0以前版本架构完全一致的效果:
    【RocketMQ】RocketMQ5.0新特性(一)- Proxy

  • Cluster模式:Broker和Proxy是分别独立部署的,是实现存储和计算分离的部署方式:
    【RocketMQ】RocketMQ5.0新特性(一)- Proxy

参考
RocketMQ5.0速览
许文强-深入拆解消息队列 47 讲文章来源地址https://www.toymoban.com/news/detail-711704.html

到了这里,关于【RocketMQ】RocketMQ5.0新特性(一)- Proxy的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【RocketMQ】RocketMQ 5.1.0版本Proxy集群模式部署实践

    为了支持长远的云原生发展,RocketMQ引入了一个全新的模块:Proxy,官方对RocketMQ客户端提供了独立的开源项目:https://github.com/apache/rocketmq-clients,如果要使用这个新的客户端,必须要使用Proxy作为endpoint。 Proxy有两种搭建方式: LOCAL:本地模式,顾名思义,通过追加参数,在

    2024年02月01日
    浏览(50)
  • 【RocketMQ】RocketMQ 5.0新特性(三)- Controller模式

    在RocketMQ 5.0以前,有两种集群部署模式,分别为主从模式(Master-Slave模式)和Dledger模式。 主从模式 主从模式中分为Master和Slave两个角色,集群中可以有多个Master节点,一个Master节点可以有多个Slave节点。Master节点负责接收生产者发送的写入请求,将消息写入CommitLog文件,Sl

    2024年02月08日
    浏览(35)
  • 【RocketMQ】RocketMQ 5.0新特性(二)- Pop消费模式

    在RocketMQ 5.0之前,消费有两种方式可以从Broker获取消息,分别为Pull模式和Push模式。 Pull模式 :消费需要不断的从阻塞队列中获取数据,如果没有数据就等待,这个阻塞队列中的数据由消息拉取线程从Broker拉取消息之后加入的,所以Pull模式下消费需要不断主动从Broker拉取消息

    2024年02月08日
    浏览(41)
  • RocketMQ教程-(5)-功能特性-顺序消息

    顺序消息为 Apache RocketMQ 中的高级特性消息,本文为您介绍顺序消息的应用场景、功能原理、使用限制、使用方法和使用建议。 在有序事件处理、撮合交易、数据实时增量同步等场景下,异构系统间需要维持强一致的状态同步,上游的事件变更需要按照顺序传递到下游进行处

    2024年02月15日
    浏览(36)
  • RocketMQ教程-(5)-功能特性-事务消息

    事务消息为 Apache RocketMQ 中的高级特性消息,本文为您介绍事务消息的应用场景、功能原理、使用限制、使用方法和使用建议。 事务消息为 Apache RocketMQ 中的高级特性消息,本文为您介绍事务消息的应用场景、功能原理、使用限制、使用方法和使用建议。 以电商交易场景为例

    2024年02月15日
    浏览(45)
  • RocketMQ教程-(5)-功能特性-消费者分类

    Apache RocketMQ 支持 PushConsumer 、 SimpleConsumer 以及 PullConsumer 这三种类型的消费者,本文分别从使用方式、实现原理、可靠性重试和适用场景等方面为您介绍这三种类型的消费者。 Apache RocketMQ 面向不同的业务场景提供了不同消费者类型,每种消费者类型的集成方式和控制方式都

    2024年02月16日
    浏览(43)
  • RocketMQ与Kafka深度对比:特性与适用场景解析

    在分布式系统中,消息队列作为解耦、缓冲和异步通信的关键组件,其选择对于系统的性能和稳定性至关重要。RocketMQ和Kafka作为两款流行的开源消息中间件,各自拥有独特的设计理念和功能特性。本文将详细对比RocketMQ与Kafka在数据可靠性、实时性、队列数与性能、消息顺序

    2024年02月21日
    浏览(31)
  • rocketMq消息队列原生api使用以及rocketMq整合springboot

    使用RocketMQ的原生API开发是最简单也是目前看来最牢靠的方式。这里用SpringBoot来搭建一系列消息生产者和消息消费者,来访问之前搭建的RocketMQ集群。 首先创建一个基于Maven的SpringBoot工程,引入如下依赖: RocketMQ的官网上有很多经典的测试代码,这些代码虽然依赖的版本比较

    2024年02月12日
    浏览(45)
  • MQ公共特性介绍 (ActiveMQ, RabbitMQ, RocketMQ, Kafka对比)

    本文主要介绍所有MQ框架都具备的公共特点,同时对比了一些目前比较主流MQ框架的优缺点,给大家做技术选型作参考。 MQ,MessageQueue,消息中间件 从世界上第一个MQ的诞生历程来看,它最初是为了解决通信的问题。 消息队列,又叫做消息中间件。是指用高效可靠的消息传递

    2024年02月15日
    浏览(45)
  • Golang原生实现JA3指纹修改,并支持Proxy代理

    抓取某个HTTPS网站的时候 开启charles代理能够抓取成功,关闭被风控 通过检测,怀疑可能是tls的时候有区别 golang的http中,Transport.TLSClientConfig是可以自定义设置的 但起初通过随意设置并不能绕过风控 使用golang的http客户端,修改DialTLSContext函数的方式是可以实绕过风控,但使用proxy的

    2024年02月13日
    浏览(85)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包