Ejemplo n.º 1
0
        public static void UseInterServiceCommunication(this IServiceCollection services, InterServiceCommunicationSettings settings)
        {
            IMessageClient        messageClient    = null;
            MessageClientSettings producerSettings = null;

            switch (settings.Type)
            {
            case Enumerations.InterServiceCommunicationType.RabbitMQ:
                messageClient = new RabbitMQMessageClient();
                break;

            case Enumerations.InterServiceCommunicationType.Kafka:
            default:
                messageClient    = new KafkaMessageClient();
                producerSettings = new KafkaMessageSettings()
                {
                    BrokerList  = settings.Address,
                    Topics      = settings.Receivers,
                    ServiceName = settings.ServiceName
                };
                break;
            }

            messageClient.InitializeMessageClient(producerSettings);

            services.AddSingleton(messageClient);
        }
Ejemplo n.º 2
0
        public void InitializeMessageClient(MessageClientSettings producerSettings)
        {
            if (producerSettings == null)
            {
                producerSettings = GetDefaultSettings();
            }
            else if (!(producerSettings is KafkaMessageSettings))
            {
                throw new Exception("Settings should be KafkaSettings");
            }

            _kafkaSettings  = producerSettings as KafkaMessageSettings;
            fProducerConfig = new ProducerConfig {
                BootstrapServers = _kafkaSettings.BrokerList
            };
        }