QsMessaging
1.0.0
QsMessaging은 RabbitMQ를 사용하여 애플리케이션의 서비스 또는 구성 요소 간에 메시지를 보내고 받도록 설계된 .NET 8 라이브러리입니다. 수평 확장성을 지원하므로 동일한 서비스의 여러 인스턴스가 메시지를 효율적으로 처리할 수 있습니다.
원활한 통합을 위해 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를 방문하세요.