.NET 客户端

C# NuGet Gallery

English | 简体中文 | RocketMQ 官网

最小版本支持

支持 .NET 5+ 和 .NET Core 3.1。

由于 .NET 5 在 2020 年的发布,统一了.NET Framework 和 .NET Core ,并逐渐成为 .NET 开发的主流平台。我们强烈推荐使用 .NET 5+ 访问 RocketMQ。

与此同时我们也支持 .NET Core 3.1。注意:如果您想使用 .NET Core 3.1 接入 RocketMQ 且想通过 Org.Apache.Rocketmq.ClientConfig.Builder.EnableSsl(false) 关闭 TLS/SSL,请在运行之前添加以下代码。

// .NET Core 3.1 环境下想关闭 TLS/SSL 时需要添加此代码
AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true)

关于 .NET 5 的更多介绍,可以参照 Introducing .NET 5

概述

当前客户端基于 rocketmq-apis 中的协议约束和 gRPC-dotnet 进行构建,使用 Protocol Buffers 作为序列化协议。

快速开始

使用下面的命令来将客户端添加到你项目的依赖中:

dotnet add package RocketMQ.Client

你可以从 Nuget Gallery 从获取最新的 RocketMQ.Client 版本,我们提供了代码示例来帮助你快速开始。

构建

本项目的布局大致遵循此处的指南 ,解决方案内包含客户端类库,单元测试模块和示例代码模块。假设你处于当前项目的路径下:

# 构建项目
dotnet build
# 运行单元测试
dotnet test -l "console;verbosity=detailed"

日志系统

我们使用 NLog 作为日志实现,与 Java 客户端类似,我们允许使用环境变量来自定义日志相关的配置。

  • rocketmq_log_level:日志输出级别,默认为 INFO。
  • rocketmq_log_root :日志输出的根目录。默认路径为 $HOME/logs/rocketmq,因此完整路径为 $HOME/logs/rocketmq/rocketmq-client.log
  • rocketmq_log_file_maxIndex:要保留的日志文件的最大数量。默认值为 10,单个日志文件的大小限制为 64 MB。暂不支持调整。

除此之外,通过将 mq_consoleAppender_enabled 设置为 true,您可以同时将客户端日志输出到控制台进行调试。

NuGet 包发布步骤

  1. 打开命令行,进入 csharp 文件夹。
  2. 执行 dotnet pack --configuration Release 命令. 这会创建对应的 NuGet 包到 bin/Release 文件夹;
  3. 登录 NuGet Gallery 并登录,点击 Upload 按钮并将 nupkg 文件拖入提示框;
  4. 按照 NuGet Gallery 的提示,完成后续步骤。