我用Rust开发Rocketmq name server

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

1. Rocketmq-rust namesrv概述

经过一个多月的开发,终于开发出来了一个Rust版本的Rocketmq name server组件。这个组件和Rocketmq Java版本完全兼容。提供相同的功能。

Github项目地址:Rocketmq-rust

使用Rust开发出来的Rocketmq name server的好处:

  • 启动时间相比Java版本大大减少

image.png

可以看到启动不到一秒钟就完成整个Rocketmq name server的启动。
  • 有着跨平台的特性(这里需要在不同的平台进行编译)

  • 内存安全,由于Rust语言的特性没有内存的回收机制。

如果平时有使用Rocketmq,并且本地需要启动Name server可以考虑使用这个Rust版本,既方便有快速。下载地址:https://github.com/mxsm/rocketmq-rust/releases/download/v0.1.0/rocketmq-rust-all-bin-0.1.0.zip

2.快速开始Rocketmq-rust name server

快速的使用Rocketmq的name server有两种方式:

  • 直接下载编译好的程序
  • 使用cargo命令进行安装
  • 使用源码进行编译

2.1 下载二进制文件

首先从Github的版本页面下载二进制文件rocketmq-rust-all-bin-0.1.0.zip。

image.png

image.png

文件下载后进行解压解压后可以看到如下两个文件夹如下图:

image.png

windowsLinux 两个平台的文件。

Mac的这个版本暂时没有提供,后续的版本会提供。

下面就以Windows为例(Linux的大家也可以自己去尝试现在的windows10,可以安装一个WSL)。在windows 的文件里面有 rocketmq-namesrv-rust.exe 的执行文件这个就是Rocketmq name server的启动文件。

image.png

双击即可启动。如下图所示:

image.png

通过如下命令查看使用:

rocketmq-namesrv-rust.exe --help

RocketMQ Name server(Rust)

Usage: rocketmq-namesrv-rust.exe [OPTIONS]

Options:
  -p, --port <PORT>    rocketmq name server port [default: 9876]
  -i, --ip <IP>        rocketmq name server ip [default: 127.0.0.1]
  -c, --config <FILE>  rocketmq name server config file
  -h, --help           Print help
  -V, --version        Print version

这里可以配置rocketmq name server的ip地址和端口以及配置文件。相对于Java版本这里我做了一些优化

image.png

2.2 通过命令安装

通过rust的cargo命令进行安装,我这里用linux作为例子(WSL)。使用一下命令

 cargo install rocketmq-namesrv

等待安装到本地。

image.png

然后运行验证一下,运行命令

rocketmq-namesrv-rust

image.png

通过查看发现运行成功。

2.3 使用源码进行编译

使用源码编译和通过cargo命令进行安装是一样的首先需要rust进行安装,版本最小为1.75.0。然后从Github rocketmq-rust 将源代码clone到本地,然后进入代码的根目录。运行如下命令:

cargo run --bin rocketmq-namesrv-rust

就能运行rocketmq name server了。

3. 功能验证

功能如何验证,首先我们将**rocketmq-dashboard** 的代码clone到本地或者如果本地有对应的也可以。

验证都用IDEA来进行

1. 启动rust版本的nameserver

image.png

2. 启动rocketmq-dashboard

image.png

通过上面的nameserver打印的日志可以看出来已经连上了(到这里Broker还没有启动), 登录web进入发现也没呀任何数据,如下图:

image.png

3 启动Broker注册

image.png

name server收到broker的注册请求。下面我们看一下web页面的信息。

image.png

数据已经注册上去了。到这里可以发现基本功能都已经实现了。

4. 总结

当前 rocketmq-rust 这个项目基本用rust实现了一个Rocketmq name server的功能,这个组件仔功能方面可能会有些bug存在,后续也会进行进一步的测试和修复。使用过程中发现问题可以提ISSUE 与此同时如果对 rustrocketmq 感兴趣欢迎大家一起参与到项目中来。

image.png

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ssm学生选课系统

学生选课系统&#xff0c;java项目&#xff0c;ssm项目&#xff0c;增删改查均已实现。eclipse和idea都能打开运行。 系统分为3部分学生选课管理&#xff0c;教师管理&#xff0c;管理员管理 主要功能&#xff1a; 管理员&#xff1a;课程管理、学生管理、教师管理 教师&am…

Unity打包Android,jar文件无法解析的问题

Unity打包Android&#xff0c;jar无法解析的问题 介绍解决方案总结 介绍 最近在接入语音的SDK时&#xff0c;发现的这个问题. 当我默认导入这个插件的时候&#xff0c;插件内部的文件夹&#xff08;我下面话红框的文件夹&#xff09;名字原本为GCloudVoice&#xff0c;这时候我…

利用Python中的集合去除列表中重复的元素

题目描述 已知列表li_one[1,2,1,2,3,5,4,3,5,7,4,7,8]&#xff0c;编写程序实现删除列表li_one中重复数据的功能。 分析 集合的特点是集合内元素无序性&#xff0c;集合内元素不可重复&#xff0c;因此可以利用不可重复的特性来解决该问题。 程序代码 li_one[1,2,1,2,3,5,…

Day01-变量和数据类型课后练习-参考答案

文章目录 1、输出你最想说的一句话&#xff01;2、定义所有基本数据类型的变量和字符串变量3、用合适类型的变量存储个人信息并输出4、定义圆周率PI5、简答题 1、输出你最想说的一句话&#xff01; 编写步骤&#xff1a; 定义类 Homework1&#xff0c;例如&#xff1a;Homewo…

已实现:vue、h5项目如何使用echarts实现雷达图、六边形图表

说实话&#xff0c;要说图表里&#xff0c;最强的应该属于echarts了&#xff0c;不管是接入难度上&#xff0c;还是样式多样性上&#xff0c;还有社区庞大程度上&#xff0c;都是首屈一指的&#xff0c;反观有的人习惯用chart.js了&#xff0c;这个无可厚非&#xff0c;但是如果…

elementui中的tree自定义图标

需求&#xff1a;实现如下样式的树形列表 自定义树的图标以及点击时&#xff0c;可以根据子级的关闭&#xff0c;切换图标 <el-tree :data"treeList" :props"defaultProps"><template #default"{ node, data }"><span class&quo…

校园圈子论坛系统--APP小程序H5,前后端源码交付,支持二开!uniAPP+PHP书写!

随着移动互联网的快速发展&#xff0c;校园社交成为了大学生们日常生活中重要的一部分。为了方便校园内学生的交流和互动&#xff0c;校园社交小程序逐渐走入人们的视野。本文将探讨校园社交小程序的开发以及其带来的益处。 校园社交小程序的开发涉及许多技术和设计方面。首先&…

一进一出超薄 V/F(I/F)频率脉冲信号转换器

一进一出超薄 V/F(I/F)频率脉冲信号转换器特点&#xff1a; ◆低成本,超薄设计,国际标准DIN35导轨安装 ◆三端隔离(输入、输出、工作电源间相互隔离) ◆高精度等级(0.1% F.S&#xff0c;0.2% F.S) ◆高线性度(0.1% F.S) ◆高隔离耐压(3000VDC/60S) ◆极低温度漂移(80PPM/℃) ◆…

LLM之makeMoE:makeMoE的简介、安装和使用方法、案例应用之详细攻略

LLM之makeMoE&#xff1a;makeMoE的简介、安装和使用方法、案例应用之详细攻略 目录 makeMoE的简介 1、对比makemore 2、相关代码文件 makMoE_from_Scratch.ipynb文件 makeMoE_Concise.ipynb文件 makeMoE的安装和使用方法 1、基于Databricks使用单个A100进行开发 makeM…

2024年新提出的算法:(凤头豪猪优化器)冠豪猪优化算法Crested Porcupine Optimizer(附Matlab代码)

本次介绍一种新的自然启发式元启发式算法——凤头豪猪优化器(Crested Porcupine Optimizer&#xff0c;CPO)。该成果于2024年1月发表在中科院1区SCI top期刊Knowledge-Based Systems&#xff08;IF 8.8&#xff09;上。 1、简介 受到凤头豪猪&#xff08;CP&#xff09;各种…

qt学习:Table widget控件

目录 头文件 实战 重新配置ui界面 添加头文件 在构造函数中添加初始化 显示方法 该实例是在sqlite项目上添加qt学习&#xff1a;QTSQL连接sqlite数据库增删改查-CSDN博客 头文件 #include <QTableWidgetItem> 实战 重新配置ui界面 用法介绍&#xff0c;可以双击…

Web3技术革新:重新定义在线体验

互联网的不断演进塑造了我们的数字生活&#xff0c;而Web3技术的涌现正带来一场前所未有的变革。本文将深入探讨Web3技术的创新&#xff0c;以及它如何重新定义和提升我们的在线体验。 Web3技术的基本概念 Web3是互联网的第三个时代&#xff0c;它将去中心化、区块链、智能合约…

计算机二级C语言公共基础知识

数据结构和算法 一 算法 算法是指对解决方案准确而完整的描述&#xff0c;简单的说&#xff0c;算法就是解决问题的操作步骤&#xff08;有一个很著名的公式 “程序数据结构算法”&#xff09; 算法不等于数学上的计算方法&#xff0c;也不等于程序&#xff08;程序可以描述…

Datawhale 组队学习之大模型理论基础Task9 大模型法律

第11章 大模型法律 11.1 简介 此内容主要探讨法律对大型语言模型的开发和部署有何规定。 先看看法律的特点&#xff1a; 法律就如我国法律教材所给出的一样&#xff0c;有依靠国家强制力保证实施的特点。 而法律在大模型中也是不可或缺的&#xff0c;缺少了法律的约束&…

使用Hutool工具包解析、生成XML文件

说明&#xff1a;当我们在工作中需要将数据转为XML文件、或者读取解析XML文件时&#xff0c;使用Hutool工具包中的XMLUtil相关方法是最容易上手的方法&#xff0c;本文介绍如何使用Hutool工具包来解析、生成XML文件。 开始之前&#xff0c;需要导入Hutool工具包的依赖 <de…

通过Demo学WPF—数据绑定(一)✨

前言✨ 想学习WPF&#xff0c;但是看视频教程觉得太耗时间&#xff0c;直接看文档又觉得似懂非懂&#xff0c;因此想通过看Demo代码文档的方式进行学习。 准备✨ 微软官方其实提供了WPF的一些Demo&#xff0c;地址为&#xff1a;microsoft/WPF-Samples: Repository for WPF …

MySQL:MVCC原理详解

MySQL是允许多用户同时操作数据库的&#xff0c;那么就会出现多个事务的并发场景。那么再并发场景会出现很多问题&#xff1a;脏读、不可重复读、幻读的问题。 而解决这些问题所用到的方法就是&#xff1a;MVCC 多版本并发控制。而这个MVCC的实现是基于read_view、undoLog 如…

Linux部署lomp环境,安装typecho、WordPress博客

部署lomp环境&#xff0c;安装typecho、WordPress博客 一、环境要求1.1.版本信息1.2.准备阿里云服务器【新用户免费使用三个月】1.3.准备远程工具【FinalShell】 二、Linux下安装openresty三、Linux下安装Mysql四、安装Apache【此步骤可省略】4.1.安装Apache服务及其扩展包4.2.…

《HTML 简易速速上手小册》第9章:HTML5 新特性(2024 最新版)

文章目录 9.1 HTML5 新增标签和属性9.1.1 基础知识9.1.2 案例 1&#xff1a;创建一个结构化的博客页面9.1.3 案例 2&#xff1a;使用新的表单元素创建事件注册表单9.1.4 案例 3&#xff1a;创建一个具有高级搜索功能的搜索表单 9.2 HTML5 表单增强9.2.1 基础知识9.2.2 案例 1&a…

制冷机组主要组成元件和功能

组主要组成元件的功能如下&#xff1a; 1&#xff09; 压缩机&#xff1a;主要起吸排气作用&#xff0c;将蒸发后的制冷剂气体吸入压缩机并进行压缩,再排到油分离中&#xff1b; 2&#xff09; 减震管&#xff1a;可有效地防止压缩机的震动传递到管路部分&#xff1b; 3&am…