QsMessaging
1.0.0
QsMessagingは、 RabbitMQを使用してアプリケーションのサービスまたはコンポーネント間でメッセージを送受信するために設計された .NET 8 ライブラリです。水平方向のスケーラビリティをサポートし、同じサービスの複数のインスタンスがメッセージを効率的に処理できるようにします。
シームレスな統合のために NuGet で利用可能:
分散システム向けのシンプルでスケーラブルなメッセージング ソリューション。
次のコマンドを使用してパッケージをインストールします。
dotnet add package QsMessaging
ライブラリの登録は簡単です。次の 2 行のコードをProgram.cs
に追加します。
// Add QsMessaging (use the default configuration)...
builder . Services . AddQsMessaging ( options => { } ) ;
.. .
await host . UseQsMessaging ( ) ;
ラビットMQ
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 を参照してください。