QsMessaging
1.0.0
QsMessaging是一个 .NET 8 库,设计用于使用RabbitMQ在应用程序的服务或组件之间发送和接收消息。它支持水平可扩展性,允许同一服务的多个实例有效地处理消息。
可在 NuGet 上实现无缝集成:
适用于分布式系统的简单、可扩展的消息传递解决方案。
使用以下命令安装软件包:
dotnet add package QsMessaging
注册库很简单。将以下两行代码添加到您的Program.cs
中:
// Add QsMessaging (use the default configuration)...
builder . Services . AddQsMessaging ( options => { } ) ;
.. .
await host . UseQsMessaging ( ) ;
RabbitMQ
localhost
guest
guest
5672
定义消息契约:
public class RegularMessageContract
{
public required string MyTextMessage { get ; set ; }
}
将IQsMessaging
注入到您的类中:
public YourClass ( IQsMessaging qsMessaging ) { }
然后,用它来发送消息:
await qsMessaging . SendMessageAsync ( new RegularMessageContract { MyTextMessage = "My message." } ) ;
要处理该消息,请创建一个处理程序:
public class RegularMessageContractHandler : IQsMessageHandler < RegularMessageContract >
{
public Task < bool > Consumer ( RegularMessageContract contractModel )
{
// Process the message here
return Task . FromResult ( true ) ;
}
}
您还可以使用请求/响应模式发送请求并等待响应。当您需要在服务之间进行通信并期望得到响应时,这非常有用。
定义请求和响应合同:
public class MyRequestContract
{
public required string RequestMessage { get ; set ; }
}
public class MyResponseContract
{
public required string ResponseMessage { get ; set ; }
}
要发送请求并等待响应,请使用RequestResponse<TRequest, TResponse>
:
public class MyService
{
private readonly IQsMessaging _qsMessaging ;
public MyService ( IQsMessaging qsMessaging )
{
_qsMessaging = qsMessaging ;
}
public async Task < MyResponseContract > SendRequestAsync ( MyRequestContract request )
{
var response = await _qsMessaging . SendRequestResponseAsync < MyRequestContract , MyResponseContract > ( request ) ;
return response ;
}
}
要处理请求,请实现IQsRequestResponseHandler<TRequest, TResponse>
接口:
public class MyRequestHandler : IQsRequestResponseHandler < MyRequestContract , MyResponseContract >
{
public Task < MyResponseContract > Handle ( MyRequestContract request )
{
// Process the request and create a response
return Task . FromResult ( new MyResponseContract { ResponseMessage = "Response to: " + request . RequestMessage } ) ;
}
}
就这样,伙计们!
有关详细文档,请访问 QsMessaging Wiki。