public static IMessageBusConfigureContext AddDisruptor(this IMessageBusConfigureContext context)
        {
            context.Services.AddSingleton <IMessageQueueService, DisruptorMessageQueueService>();
            context.Services.AddSingleton <IAsyncMessageQueueService, DisruptorAsyncMessageQueueService>();

            return(context);
        }
Esempio n. 2
0
        public static IMessageBusConfigureContext AddKafka(this IMessageBusConfigureContext context, IConfiguration configuration)
        {
            var kafkaOptions    = configuration.GetSection("MessageBuses").GetSection("Kafka");
            var producerOptions = kafkaOptions.GetSection("ProducerOptions");
            var consumerOptions = kafkaOptions.GetSection("ConsumerOptions");

            context.Services.Configure <KafkaOptions>(kafkaOptions);
            context.Services.Configure <KafkaProducerOptions>(producerOptions);
            context.Services.Configure <KafkaConsumerOptions>(consumerOptions);

            context.Services.AddSingleton <IKafkaProducerPool, DefaultKafkaProducerPool>();
            context.Services.AddSingleton <IKafkaConsumerClientFactory, DefaultKafkaConsumerClientFactory>();
            context.Services.AddSingleton <IKafkaConsumer, DefaultKafkaConsumer>();
            context.Services.AddSingleton <IMessageQueueService, KafkaMessageQueueService>();
            context.Services.AddSingleton <IAsyncMessageQueueService, KafkaAsyncMessageQueueService>();

            return(context);
        }