private KafkaConsumer <string, KafkaMessage> CreateQueueConsumer(string queue,
                                                                         OnMessagesReceived onMessagesReceived,
                                                                         string consumerId             = null,
                                                                         ConsumerConfig consumerConfig = null)
        {
            CreateTopicIfNotExists(queue);
            var queueConsumer = new KafkaConsumer <string, KafkaMessage>(_brokerList, queue, $"{queue}.consumer", consumerId,
                                                                         BuildOnKafkaMessageReceived(onMessagesReceived),
                                                                         new StringDeserializer(Encoding.UTF8),
                                                                         new KafkaMessageDeserializer(),
                                                                         consumerConfig);

            return(queueConsumer);
        }
        public IMessageConsumer CreateQueueConsumer(string queue,
                                                    OnMessagesReceived onMessagesReceived,
                                                    string consumerId,
                                                    ConsumerConfig consumerConfig,
                                                    bool start = true)
        {
            var consumer = new KafkaConsumer <string, KafkaMessage>(_brokerList, new [] { queue }, $"{queue}.consumer", consumerId,
                                                                    BuildOnKafkaMessageReceived(onMessagesReceived),
                                                                    consumerConfig);

            if (start)
            {
                consumer.Start();
            }
            return(consumer);
        }
        public IMessageConsumer CreateTopicSubscription(string[] topics,
                                                        string subscriptionName,
                                                        OnMessagesReceived onMessagesReceived,
                                                        string consumerId,
                                                        ConsumerConfig consumerConfig,
                                                        bool start = true)
        {
            var consumer = new KafkaConsumer <string, KafkaMessage>(_brokerList, topics, subscriptionName, consumerId,
                                                                    BuildOnKafkaMessageReceived(onMessagesReceived),
                                                                    consumerConfig);

            if (start)
            {
                consumer.Start();
            }
            return(consumer);
        }