.NET Núcleo desenvolvimento combate real (Lição 33: Integração Evento: uso RabbitMQ para alcançar EventBus) - Notas de Estudo (sob)

33 | eventos de integração: o uso RabbitMQ para alcançar EventBus

Para demonstrar as nossas publicações e assinaturas, nós aqui no código para fazer alguns pequenos ajustes

namespace GeekTime.API.Application.DomainEventHandlers
{
    public class OrderCreatedDomainEventHandler : IDomainEventHandler<OrderCreatedDomainEvent>
    {
        ICapPublisher _capPublisher;
        public OrderCreatedDomainEventHandler(ICapPublisher capPublisher)
        {
            _capPublisher = capPublisher;
        }

        public async Task Handle(OrderCreatedDomainEvent notification, CancellationToken cancellationToken)
        {
            await _capPublisher.PublishAsync("OrderCreated", new OrderCreatedIntegrationEvent(notification.Order.Id));
        }
    }
}

Aqui nós lançou um OrderCreated integrado evento e, em seguida, assinar um OrderCreated

namespace GeekTime.API.Application.IntegrationEvents
{
    public class SubscriberService : ISubscriberService, ICapSubscribe
    {
        IMediator _mediator;
        public SubscriberService(IMediator mediator)
        {
            _mediator = mediator;
        }


        [CapSubscribe("OrderPaymentSucceeded")]
        public void OrderPaymentSucceeded(OrderPaymentSucceededIntegrationEvent @event)
        {
            //Do SomeThing
        }

        [CapSubscribe("OrderCreated")]
        public void OrderCreated(OrderCreatedIntegrationEvent @event)
        {
            //Do SomeThing
        }
    }
}

Por propriedades de etiqueta, podemos concluir a inscrição

Isso é quando nós criamos uma ordem, vamos desencadear campo de evento de criação de ordem, a criação da ordem de campo de evento de um evento integrado e enviar uma ordem criada, e então nós subscrito o serviço de assinatura que integra caso de criação de ordem

Cada uma marcada com um ponto de interrupção, iniciar um programa no lugar para publicar e assinar, você pode ver todo o processo

Em seguida, pentear todo o processo, primeiro criamos uma ordem, a ordem desencadeia nosso evento campo OrderCreated, os eventos de campo processador OrderCreated como o nosso EventBus lançou um OrderCreated eventos integrados, nós subscrever o serviço no lugar Assinar este incidente, para que possamos receber e fazer o tratamento adequado

Nós olhamos para a tabela no banco de dados, um total de quatro mesas, cap.publish e cap.received duas tabelas correspondem a enviar e receber evento tabela de eventos da tabela, ordem duas tabelas e usuário é nossa mesa modelo de domínio

Todo o quadro da PAC, os seus princípios de implementação, de fato, existem dois pontos-chave, uma tabela de eventos, é um controle de transação, que será incorporado eventos de armazenamento para a nossa lógica de negócios da transação para ir para dentro, desta forma podemos garantir nosso negócio eo evento pode ser armazenado tanto sucesso ou fracasso

quadro da PAC ao longo da sua aplicabilidade é muito forte, muito recomendado para usar essa estrutura para lidar com eventos integrados

Creative Commons License

Este trabalho é Creative Commons Attribution - Contrato de Licença ShareAlike 4.0 International - Não comercial para o licenciamento.

Bem-vindo a reimpressão, uso, repost, mas não se esqueça de manter o artigo assinado por Zheng Ziming (contendo links: http://www.cnblogs.com/MingsonZheng/ ), não devem ser utilizados para fins comerciais, não se esqueça de publicar o mesmo trabalho com base na modificação licença de papel .

Se você tiver alguma dúvida, entre em contato comigo ([email protected]).

Acho que você gosta

Origin www.cnblogs.com/MingsonZheng/p/12584854.html
Recomendado
Clasificación