RoP 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
RoP 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
RoP 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 Java 查看源码 »
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 StreamNative
适用人群 未知
收录时间 2021-05-21

软件简介

与 KoP、MoP 和 AoP 相似,RoP 是一种可插拔的协议处理插件,RoP 将 RocketMQ 协议处理插件引入 Pulsar broker,这样 Pulsar 能支持原生 RocketMQ 协议。

将 RoP 协议处理插件添加到现有 Pulsar 集群后,用户无需修改代码,便能将现有的 RocketMQ 应用程序和服务迁移到 Pulsar,同时还能使用 Pulsar 的强大功能,例如:

  • 计算与存储分离
  • 多租户
  • 跨地域复制
  • 分层分片
  • 轻量化计算框架 -- Pulsar Functions
  • ...

RoP 架构

RoP 概念

Offset 和 MessageID

在 RocketMQ 中,使用 offset 来标识消息的位置,当消息被生产到指定的 Topic 之后,会为每一个消息分配一个唯一的 offset;在 Pulsar 中,使用 MessageID 来唯一标识每条消息,每一个 MessageID 由三部分组成,ledgerIDentryID 和 partitionID。我们通过合理的划分将 messageID 和 offset 进行映射,来唯一标识 Topic 中的每一条消息。

Message

对于一条消息,RocketMQ 和 Pulsar 都包含消息的 headers 和 payload 等字段,通过对消息协议的解析,我们可以轻松的将 RocketMQ message 转换为 Pulsar 的 message 格式。为了更好的兼容 Tag 消息的功能,在消息协议的处理方面增加了 8 字节的特殊字段,用来区分该消息是否属于 tag 消息。

Topic Lookup

在 Pulsar 中,client 与 broker 建立连接之前,会根据当前传入的 Topic 执行 Lookup 操作,在 Broker 集群中寻找当前 Topic 所在的 Owner Broker,然后将该 Owner Broker 的地址返回并与 client 建立 TCP 连接,再进行数据交互。在 RocketMQ 中,client 与 broker 建立连接之前,会先处理 GET_ROUTEINTO_BY_TOPIC 命令,获取 topic 所在的路由信息后,建立对应的 TCP 连接,再进行数据交互。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
发表于云计算专区
2021/05/21 00:31

腾讯和 StreamNative 开源 RoP:Apache Pulsar 支持原生 RocketMQ 协议

我们很高兴地宣布 StreamNative 与腾讯云中间件团队联合宣布开源 RoP! RoP 将 RocketMQ 协议处理插件引入 Pulsar broker,这样 Pulsar 能支持原生 RocketMQ 协议。 什么是 RoP? 与 KoP、MoP 和 AoP 相似,RoP 是一种可插拔的协议处理插件。 将 RoP 协议处理插件添加到现有 Pulsar 集群后,用户无需修改代码,便能将现有的 RocketMQ 应用程序和服务迁移到 Pulsar,同时还能使用 Pulsar 的强大功能,例如: •计算与存储分离 •...

0
4
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
Apache Ant 信息泄露漏洞
将资源暴露给错误范围
Apache Ant是美国阿帕奇(Apache)基金会的一套用于Java软件开发的自动化工具。该工具主要用于软件的编译、测试和部署等。 Apache Ant 1.1版本至1.9.14版本和1.10.0版本至1.10.7版本中存在信息泄露漏洞。攻击者可利用该漏洞泄漏敏感信息。
CVE-2020-1945 MPS-2020-7418
2022-08-08 21:15
Vmware Spring Framework 安全特征问题漏洞
大小写敏感处理不恰当
Vmware Spring Framework是美国威睿(Vmware)公司的一套开源的Java、JavaEE应用程序框架。 Vmware Spring Framework的disallowedFields 模式区分大小写,这意味着除非字段同时列出字段的第一个字符小写,包括属性路径中所有嵌套字段的第一个字符的大写和小写,否则远程攻击者利用该漏洞可以绕过实施的安全限制。
CVE-2022-22968 MPS-2022-1098
2022-08-08 21:15
spring-beans 远程代码执行漏洞(Spring4Shell)
表达式注入
spring-beans 负责实现 Spring 框架的 IOC 模块。 CVE-2010-1622 中曾出现由于参数自动绑定机制导致的问题, 通过黑名单的方式修复了该漏洞,但是 JDK9之后引入了 Module,使得可以通过 getModule 绕过前者的黑名单限制,导致远程代码执行。 org.springframework:spring-beans的5.3.0 至 5.3.17、5.2.0.RELEASE 至 5.2.19.RELEASE 版本都受到影响。
CVE-2022-22965 MPS-2022-6820
2022-08-08 21:15
Netty Bzip2Decoder资源穷尽漏洞
拒绝服务
Netty 是一个异步事件驱动的网络应用程序框架。 Netty的Bzip2 decompression decoder功能不允许对解压输出数据设置大小限制造成安全漏洞。攻击者可利用该漏洞引发DoS攻击
CVE-2021-37136 MPS-2021-28116
2022-08-08 21:15
OpenSSL 权限许可和访问控制问题漏洞
权限、特权和访问控制
OpenSSL是OpenSSL团队的一个开源的能够实现安全套接层(SSLv2/v3)和安全传输层(TLSv1)协议的通用加密库。该产品支持多种加密算法,包括对称密码、哈希算法、安全散列算法等。 OpenSSL 0.9.8l之前版本和0.9.8m版本至1.x版本中存在权限许可和访问控制问题漏洞。该漏洞源于网络系统或产品缺乏有效的权限许可和访问控制措施。
CVE-2011-1473 MPS-2012-1902
2022-08-08 21:15
Google Guava 代码问题漏洞
不加限制或调节的资源分配
Google Guava是美国谷歌(Google)公司的一款包括图形库、函数类型、I/O和字符串处理等的Java核心库。 Google Guava 11.0版本至24.1.1版本(不包括24.1.1版本)中存在代码问题漏洞。该漏洞源于网络系统或产品的代码开发过程中存在设计或实现不当的问题。
CVE-2018-10237 MPS-2018-5515
2022-08-08 21:15
Apache Commons Beanutils 不可信数据的反序列化
反序列化
在 Apache Commons Beanutils 1.9.2 中,添加了一个特殊的 BeanIntrospector 类,它允许抑制攻击者通过所有 Java 对象上可用的类属性访问类加载器的能力。然而,我们并没有使用 PropertyUtilsBean 的默认特性。
CVE-2019-10086 MPS-2019-10233
2022-08-08 21:15
Hibernate Validator 跨站脚本漏洞
XSS
Hibernate Validator是一款参数校验框架。 Hibernate Validator中存在跨站脚本漏洞。该漏洞源于WEB应用缺少对客户端数据的正确验证。攻击者可利用该漏洞执行客户端代码。
CVE-2019-10219 MPS-2019-14389
2022-08-08 21:15
Junit 信息泄露漏洞
关键资源的不正确权限授予
Junit是个人开发者的一个开放源代码的Java测试框架。 JUnit4 4.13.1之前版本存在信息泄露漏洞,该漏洞源于测试规则TemporaryFolder包含一个本地信息泄露漏洞。在类似Unix的系统中,系统的临时目录在该系统上的所有用户之间共享。因此,在将文件和目录写入此目录时,默认情况下,相同系统上的其他用户都可以读取它们。此漏洞不允许其他用户覆盖这些目录或文件的内容。这纯粹是一个信息披露的漏洞。如果JUnit测试编写了敏感信息,这个漏洞就会对您造成影响。
CVE-2020-15250 MPS-2020-15183
2022-08-08 21:15
Google Guava 访问控制错误漏洞
关键资源的不正确权限授予
Google Guava是美国谷歌(Google)公司的一款包括图形库、函数类型、I/O和字符串处理等的Java核心库。 Guava 30.0版本之前存在访问控制错误漏洞,该漏洞源于Guava存在一个临时目录创建漏洞,允许访问机器的攻击者可利用该漏洞潜在地访问由Guava com.google.common.io. Files. createTempDir() 创建的临时目录中的数据。攻击者可以利用该漏洞访问特殊目录。
CVE-2020-8908 MPS-2020-17429
2022-08-08 21:15
Apache Commons Compress 无限循环漏洞
不可达退出条件的循环(无限循环)
Apache Commons Compress是美国阿帕奇(Apache)基金会的一个用于处理压缩文件的库。 Apache Commons Compress存在安全漏洞,该漏洞源于当读取一个特殊制作的7Z归档文件时,构造解码器列表来解压缩条目可能会导致无限循环。
CVE-2021-35515 MPS-2021-10565
2022-08-08 21:15
com.beust:jcommander 存在从非可信控制范围包含功能例程漏洞
com.beust:jcommander 是 Java 的命令行解析框架。由于解决了不安全通道 (http) 上的依赖关系,因此此软件包的受影响版本容易受到不安全依赖关系解决的影响。
MPS-2022-12225
2022-08-08 21:15
Netty 安全漏洞
Netty 是一个开源的、异步事件驱动的网络应用框架。版本 4.1.77.Final 之前的包 io.netty:netty-codec-http 包含对 CVE-2021-21290 的不充分修复。当使用 Netty 的多部分解码器时,如果启用了在磁盘上临时存储上传,则可以通过本地系统临时目录发生本地信息泄露。这只会影响在 Java 版本 6 及更低版本上运行的应用程序。此外,此漏洞会影响在类 Unix 系统以及非常旧版本的 Mac OSX 和 Windows 上运行的代码,因为它们都在所有用户之间共享系统临时目录。版本 4.1.77.Final 包含针对此漏洞的补丁。作为一种解决方法,在启动 JVM 时指定自己的 `java.io.tmpdir` 或使用 DefaultHttpDataFactory.setBaseDir(...) 将目录设置为只能由当前用户读取的目录。
CVE-2022-24823 MPS-2022-3790
2022-08-08 21:15
Vmware Spring Framework 注入漏洞
输入验证不恰当
Vmware Spring Framework是美国威睿(Vmware)公司的一套开源的Java、JavaEE应用程序框架。该框架可帮助开发人员构建高质量的应用。 Spring Framework 存在注入漏洞,该漏洞源于通过日志注入绕过 Spring Framework 的访问限制,以更改数据。
CVE-2021-22096 MPS-2021-18890
2022-08-08 21:15
Netty Snappy资源穷尽漏洞
拒绝服务
Netty是Netty社区的一款非阻塞I/O客户端-服务器框架,它主要用于开发Java网络应用程序,如协议服务器和客户端等。 netty存在资源管理错误漏洞,该漏洞源于Snappy frame decoder函数不限制块长度,这可能会导致过度内存使用。
CVE-2021-37137 MPS-2021-28117
2022-08-08 21:15
fastjson < 1.2.83 任意代码执行漏洞
反序列化
Fastjson 是Java语言实现的快速JSON解析和生成器。 fastjson 使用黑白名单用于防御反序列化漏洞,1.2.80及以下版本在特定条件下可绕过默认autoType关闭限制,攻击远程服务器。 攻击者可利用该漏洞远程执行恶意代码。
CVE-2022-25845 MPS-2022-11320
2022-08-08 21:15
io.netty:netty-handler 存在证书验证不恰当漏洞
证书验证不恰当
io.netty:netty-handler 是一个提供异步事件驱动的网络应用程序框架和工具的库,用于快速开发可维护的高性能和高可扩展性协议服务器和客户端。换句话说,Netty 是一个 NIO 客户端服务器框架,可以快速轻松地开发协议服务器和客户端等网络应用程序。它极大地简化和流线了网络编程,例如 TCP 和 UDP 套接字服务器。此软件包的受影响版本容易受到不正确的证书验证的影响。在 Netty 4.1.x 中默认禁用证书主机名验证,这使得它可能容易受到中间人攻击。
MPS-2022-12067
2022-08-08 21:15
Logback-core 存在输入验证不恰当漏洞
输入验证不恰当
ch.qos.logback:logback-core 是一个 logback-core 模块。此软件包的受影响版本容易受到主机名验证不足的影响。 X.509 未正确验证。通过通过看似有效的证书欺骗 TLS/SSL 服务器,具有拦截网络流量(例如,MitM、DNS 缓存中毒)能力的攻击者可以泄露和选择性地操纵传输的数据。
MPS-2022-12411
2022-08-08 21:15
com.fasterxml.jackson.core:jackson-databind 存在拒绝服务漏洞
拒绝服务
com.fasterxml.jackson.core:jackson-databind 是一个库,其中包含Jackson Data Processor的通用数据绑定功能和树模型。当使用 JDK 序列化来序列化和反序列化 JsonNode 值时,此包的受影响版本容易受到拒绝服务 (DoS) 的攻击。
MPS-2022-12500
2022-08-08 21:15
Eclipse Jetty 输入验证不恰当漏洞
输入验证不恰当
Eclipse Jetty是Eclipse基金会的一个开源的、基于Java的Web服务器和Java Servlet容器。 Eclipse Jetty 存在安全漏洞,该漏洞源于无效的 URI 解析可能会产生无效的 HttpURI.authority。攻击者利用此漏洞会导致Proxy scenario失败。
CVE-2022-2047 MPS-2022-18060
2022-08-08 21:15
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
0 评论
4 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部