English | 简体中文 | RocketMQ Website
.NET 5+ and .NET Core 3.1 is supported.
Due to the release of .NET 5 in 2020, which unified .NET Framework and .NET Core, and has gradually become the mainstream platform for .NET development. We strongly recommend using .NET 5+ to access RocketMQ.
We also support access to RocketMQ using .NET Core 3.1. Note: If you want to use .NET Core 3.1 and want to disable TLS/SSL by Org.Apache.Rocketmq.ClientConfig.Builder.EnableSsl(false)
, add the following code before you run.
// Only necessary if you want to disable TLS/SSL on .NET Core 3.1 AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true)
See more details about .NET 5 from Introducing .NET 5.
The client would be developed using the protocols outlined in rocketmq-apis and built on gRPC-dotnet, leveraging Protocol Buffers for data serialization and deserialization during transmission.
Use the command below to add client into your dependencies.
dotnet add package RocketMQ.Client
You can obtain the latest version of RocketMQ.Client
from NuGet Gallery. To assist with getting started quickly and working with various message types and clients, we offer examples here.
Layout of this project roughly follows this guide . The solution contains a class library, a unit test module and an example console module. Assuming you are at the home of this repository:
# build the project dotnet build # run unit tests dotnet test -l "console;verbosity=detailed"
We use Microsoft.Extensions.Logging as our logging implementation.
The default LoggerFactory
is NLog. Similar to the Java binding, we allow the use of environment variables to customize the related configuration:
rocketmq_log_level
: Log output level, default is INFO.rocketmq_log_root
: The root directory of the log output. The default path is $HOME/logs/rocketmq
, so the full path is $HOME/logs/rocketmq/rocketmq-client.log
.rocketmq_log_file_maxIndex
: The maximum number of log files to keep. The default is 10, and the size of a single log file is limited to 64 MB. Adjustment is not supported yet.If you want to use a custom LoggerFactory
, you can use the MqLogManager.UseLoggerFactory
method to configure.
var loggerFactory = LoggerFactory.Create( builder => builder .AddFilter("Org.Apache.Rocketmq", LogLevel.Warning) .AddConsole()); MqLogManager.UseLoggerFactory(loggerFactory);
dotnet pack --configuration Release
command. This will create a NuGet package in the bin/Release
folder of the project.bin/Release
folder.