Rocketmq rust版本-开篇

我是蚂蚁背大象(Apache EventMesh PMC&Committer),文章对你有帮助给Rocketmq-rust star,关注我GitHub:mxsm,文章有不正确的地方请您斧正,创建ISSUE提交PR~谢谢! Emal:mxsm@apache.com

Rust重构Rocketmq,大家好我是mxsm(Apache EventMesh PMC&Committer|Rocketmq活跃Contributor)最近在学习Rust的相关知识,Rust也是近些年来比较火的语言,本着技多不压身的想法和不会Rust开发的Java开发不是好开发的理念。最近在用Rust来重构Rocketmq,把所学的Rust的知识运用起来,检验一下学习成果。这个也是我下面这个项目的目的:rocketmq-rust

有对 rocketmq-rust 项目感兴趣的小伙伴可以一起来开发和研究(Rust新手轻点喷), 希望大家给个star。 不管你是Rust的新手,高手欢迎一起交流学习参与进来。

1. 什么是rocketmq-rust?

Rocketmq-rust是基于Apache Rocketmq Java版本的Rust实现,最终的目标是用Rust的完全实现一个和现有Rocketmq一样的Rust的版本的Rocketmq。两者可互通功能完全一致。

1.1 RocketMQ-Rust 的特点

  • Rust 语言优势: 利用 Rust 语言的内存安全性、零成本抽象、并发性能等特性,提供高效、可靠的消息中间件。
  • 异步和非阻塞设计: RocketMQ-Rust 充分利用 Rust 异步编程的能力,采用非阻塞设计,支持高并发消息处理。
  • 生态整合: 作为 Rust 生态系统的一部分,RocketMQ-Rust 与 Rust 生态中其他库和框架的兼容性良好,为开发者提供灵活的集成选项。
  • 跨平台支持: RocketMQ-Rust 支持多种平台,包括 Linux、Windows、macOS 等,方便在不同环境下使用。

1.2 项目进展

已经能够实现Broker的注册功能,初步实现了:

  • Broker registration(request code: 103)-Currently, only basic Broker registration is supported. Support for the Controller mode is pending.
  • Retrieve cluster information(request code: 106)

在这里插入图片描述

具体使用可以参照项目的README 文档

2. 如何参与贡献开发

项目地址:https://github.com/mxsm/rocketmq-rust

2.1 所需相关技能

  • 熟悉Apache Rocketmq的架构以及相关知识,对Rocketmq的Java源码有一定的了解(方便进行Rust重构)
  • 了解熟悉Rust的基本知识以及开发,这里包括以下方面:
    • Rust的基础知识
    • Rust的异步知识
    • Tokio框架开发等等

2.1 如何参与

  • rocketmq-rust 项目中会有一些ISSUE可以进行实现开发
  • 根据自己的兴趣爱好自己提ISSUE进行开发

3. 目标

  • 最终目标实现Rust版本的Rocketmq,相比Java版本的版本的功能一样。同时想对比一下两种语言的实现版本性能的差异性
  • 将所学的Rust知识融会贯通,学以致用。对于想学Rust的但是又不知道从哪里练手的人来说这个项目尝试一下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/414232.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android: alarm定时很短时,比如500ms,测试执行mPowerManager.forceSuspend()后,系统不会suspend

参考文档: https://blog.csdn.net/weixin_35691921/article/details/124961404 Android: alarm定时很短时,比如500ms,然后执行mPowerManager.forceSuspend()后,系统不会suspend,原因分析: static int ala…

phpStorm 设置终端为git bash

环境: windows , PhpStorm 2022 为自己的终端配置git样式的使用, 默认终端样式 一、打开设置,选择git bin 二、重新打开终端 不加--login -i 的终端 加了--login -i 的终端 最重要的一点是什么,他可以像mac一样支持 ctrlv 复…

【React】脚手架创建项目

文章目录 创建React项目目录结构分析了解PWA脚手架中的webpack 创建React项目 ◼ 创建React项目的命令如下: ​  注意:项目名称不能包含大写字母 ​  另外还有更多创建项目的方式,可以参考GitHub的readme 命令: create-rea…

数字身份所有权:Web3时代用户数据的掌控权

随着Web3时代的来临,数字身份的概念正焕发出崭新的光芒。在这个数字化的时代,用户的个人数据变得愈加珍贵,而Web3则为用户带来了数字身份所有权的概念,重新定义了用户与个人数据之间的关系。本文将深入探讨Web3时代用户数据的掌控…

Java中创建List接口、ArrayList类和LinkedList类的常用方法(一)

List接口 要了解List接口,就不得不说起Java的集合框架。 (该图来自菜鸟教程) Collection接口和Map接口 Java 集合框架主要包括两种类型的容器,集合Collection和图Map。 Collection接口代表了单列集合,它包含了一组…

高通平台开发系列讲解(USB篇)DWC3控制USB速率

文章目录 一、设备树二、相关结构体三、最大速率设置四、当前速率设置沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本文主要介绍高通平台USB DWC3控制USB速率。 一、设备树 目录:msm-4.14/arch/arm64/boot/dts/qcom/sdxprairie-usb.dtsi dwc3@a600000 {compatibl…

机房中,为什么UPS系统这么重要?一篇看懂

在当今数字化和信息化的时代,企业对于电力供应的稳定性和可用性提出了越来越高的要求。机房作为关键的信息技术基础设施之一,其稳定的电源是确保业务连续运行的基石。 在这一背景下,UPS监控系统的作用愈发凸显,成为保障电力稳定、…

当前vscode环境下 多进程多线程运行情况探究

我的代码 其中在“打开图片时”、“进入子进程之前”、“子进程join前”、“进入子进程区域后”,“子进程join后”、“进入子线程区域后”分别打印了进程线程的编号和数量。 # -*- coding: utf-8 -*-# Form implementation generated from reading ui file test2.…

SPI传感器接口设计与优化:基于STM32的实践

SPI(串行外设接口)是一种常用的串行通信协议,用于在微控制器和外部设备之间进行全双工的高速数据传输。在本文中,我们将探讨如何基于STM32微控制器设计和优化SPI传感器接口,并提供相应的代码示例。 1. SPI传感器接口设…

Github 2024-01-16 Python开源项目日报 Top10

根据Github Trendings的统计,今日(2024-01-16统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10HTML项目1 精心策划的Python资源列表 创建周期:3490 天开发语言:Python…

Ubuntu20.04安装配置OpenCV-Python库并首次执行读图

一、选择三方提供的预编译包安装: 可以从官网下载 OpenCV 的安装包,编译后使用;也可以直接使用第三方提供的预编译包 安装。显然后者不需要执行编译步骤,更便捷。选择由 PyPI 提供的 OpenCV 安装包,可以在 https://py…

Springboot日志框架logback与log4j2

目录 Springboot日志使用 Logback日志 日志格式 自定义日志格式 日志文件输出 Springboot启用log4j2日志框架 Springboot日志使用 Springboot底层是使用slf4jlogback的方式进行日志记录 Logback日志 trace:级别最低 debug:调试级别的&#xff0c…