Galosys.Foundation.NewLife.RocketMQ
26.5.20.1
dotnet add package Galosys.Foundation.NewLife.RocketMQ --version 26.5.20.1
NuGet\Install-Package Galosys.Foundation.NewLife.RocketMQ -Version 26.5.20.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Galosys.Foundation.NewLife.RocketMQ" Version="26.5.20.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Galosys.Foundation.NewLife.RocketMQ" Version="26.5.20.1" />
<PackageReference Include="Galosys.Foundation.NewLife.RocketMQ" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Galosys.Foundation.NewLife.RocketMQ --version 26.5.20.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Galosys.Foundation.NewLife.RocketMQ, 26.5.20.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Galosys.Foundation.NewLife.RocketMQ@26.5.20.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Galosys.Foundation.NewLife.RocketMQ&version=26.5.20.1
#tool nuget:?package=Galosys.Foundation.NewLife.RocketMQ&version=26.5.20.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Galosys.Foundation.NewLife.RocketMQ
成熟度: 🟡 预览 — 基于 NewLife.RocketMQ 3.0,核心功能完成
基于 NewLife.RocketMQ 的 RocketMQ 客户端实现,支持 Remoting + gRPC 双协议,兼容 RocketMQ 4.x 和 5.x。
为什么选择 NewLife 实现
| 特性 | Apache rocketmq.client 5.x | NewLife.RocketMQ |
|---|---|---|
| 协议 | gRPC(仅 5.x Proxy) | Remoting + gRPC(双协议) |
| 兼容 4.x | ❌ | ✅ |
| 兼容 5.x | ✅ | ✅ |
| NuGet 维护 | 缓慢(最新 5.1.0, 2023.3) | 活跃(2026.3) |
| 延迟消息 | DeliveryTimestamp | 18 级预设延迟 |
安装
<PackageReference Include="Galosys.Foundation.NewLife.RocketMQ" Version="x.x.x" />
快速开始
1. 最小配置
{
"RocketMQ": {
"Endpoints": "localhost:9876"
}
}
NewLife 实现连接 NameServer(默认 9876),与 Apache 实现连接 Proxy(8081)不同。
2. 注册服务
services.AddRocketMQ(configuration);
3. 发送消息
using Galosys.Foundation.RocketMQ.Abstractions;
public class OrderService
{
private readonly RmqTemplate _template;
public OrderService(RmqTemplate template) => _template = template;
public async Task SendAsync() =>
await _template.SendAsync("order_created", new OrderCreatedMessage { OrderNo = "ORD001" });
public async Task SendDelayAsync() =>
await _template.SendAsync("order_created", new OrderCreatedMessage { OrderNo = "ORD001" }, delaySeconds: 30);
}
延迟消息自动映射到 RocketMQ 18 级预设延迟等级(1s/5s/10s/30s/1m/2m/.../2h)。
4. 消费消息
using Galosys.Foundation.RocketMQ.Abstractions;
[Handler]
public class OrderHandler : IMessageHandler<OrderCreatedMessage>
{
[RmqHandler("order_created")]
public Task<bool> HandleAsync(OrderCreatedMessage msg) => Task.FromResult(true);
}
完整配置
{
"RocketMQ": {
"Endpoints": "localhost:9876",
"AccessKey": null,
"SecretKey": null,
"ConsumerGroup": "my_service",
"Handlers": {
"order_created": {
"PrefetchCount": 16,
"Concurrency": 4,
"MaxRetryCount": 3,
"RetryBaseDelayMs": 1000
}
}
}
}
详细配置说明参见 Abstractions README。
实现细节
| 组件 | 说明 |
|---|---|
NewLifeRmqPublisher |
基于 NewLife.RocketMQ.Producer,按 Topic 缓存,延迟消息映射 DelayTimeLevels |
NewLifeRmqConsumer |
基于 NewLife.RocketMQ.Consumer,OnConsume 回调,SemaphoreSlim 并发控制 |
NewLifeRmqTemplate |
组合 Publisher + Consumer 的统一门面 |
NewLifeRmqBootstrapper |
IHostedLifecycleService,启动时扫描 [RmqHandler],关闭时释放资源 |
NewLifeRmqHealthCheck |
检查 Endpoints 配置是否有效 |
NewLifeRmqTracing |
OTel ActivitySource,Span 带 Topic/Tag/ConsumerGroup 标签 |
NewLifeRmqMeter |
6 个 Counter/Histogram 指标 |
切换实现
从 Apache 实现切换到 NewLife 实现,业务代码无需任何修改:
<PackageReference Include="Galosys.Foundation.RocketMQ.Client" Version="x.x.x" />
<PackageReference Include="Galosys.Foundation.NewLife.RocketMQ" Version="x.x.x" />
同时将 Endpoints 从 Proxy 地址(如 localhost:8081)改为 NameServer 地址(如 localhost:9876)。
依赖
Galosys.Foundation.RocketMQ.AbstractionsNewLife.RocketMQ3.0(含NewLife.Core)
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- Galosys.Foundation.RocketMQ.Abstractions (>= 26.5.20.1)
- newlife.rocketmq (>= 3.0.2026.305)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 26.5.20.1 | 95 | 5/20/2026 |
| 26.5.19.1 | 91 | 5/19/2026 |
| 26.5.18.1 | 95 | 5/18/2026 |
| 26.5.15.1 | 98 | 5/15/2026 |
| 26.5.12.3 | 73 | 5/12/2026 |
| 26.5.12.2 | 96 | 5/12/2026 |
| 26.4.27.1-rc1 | 97 | 4/26/2026 |
| 26.4.25.1-rc1 | 98 | 4/25/2026 |
| 26.4.22.2-rc7 | 102 | 4/22/2026 |
| 26.4.22.2-rc6 | 92 | 4/22/2026 |
| 26.4.22.2-rc4 | 91 | 4/22/2026 |