C ++ с Kafka — потребитель просто получает сообщения от производителя

Я использую следующее C++ код для создания сообщений Kafka:

#include <thread>
#include <cppkafka/producer.h>

using namespace cppkafka;

int main()
{
for(int i = 0 ; i < 100 ; i++)
{
std::cout << "sending msg number: " << i << std::endl;
std::string str("{'msg number' : " + std::to_string(i) + "}");

// Create a message builder for this topic
MessageBuilder builder("test");

// Construct the configuration
Configuration config =
{
{ "metadata.broker.list", "192.168.1.100:9092"}
};

// Create the producer
Producer producer(config);

builder.payload(str);

producer.produce(builder); //Only a few messages are received!

std::this_thread::sleep_for(std::chrono::milliseconds(50));//If I remove this, no message is received!
}
}

На моей машине, где у меня работает Zookeeper а также Kafka serverЯ управляю consumer, чтобы показать полученные сообщения, используя это:

bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.100:9092 --topic test

мой C++ код производит следующее:

sending msg number: 0
sending msg number: 1
sending msg number: 2
sending msg number: 3
(...) //from 0 to 99...all the messages are sent!
sending msg number: 98
sending msg number: 99

Я ожидал, что потребитель получит все эти сообщения, но я вижу только несколько:

{'msg number' : 40}
{'msg number' : 58}
{'msg number' : 70}
{'msg number' : 75}
{'msg number' : 91}
{'msg number' : 96}

И больше не получил.

Если я уберу строку:

std::this_thread::sleep_for(std::chrono::milliseconds(50));

Я не получаю никаких сообщений.
Почему мой Kafka сервер не получает все мои сообщения?

2

Решение

Оригинальный комментарий:

Это, вероятно, своего рода предотвращение спама, то есть отправка сообщений слишком быстро, а сервер просто отключает их.

Существует множество различных методов защиты от спама, разработанных провайдерами веб-серверов. Это сделано для того, чтобы кто-то не спамил ваш сервер, отправляя тонны веб-трафика Я думаю, что это вероятно то, что вы делаете

https://en.wikipedia.org/wiki/Anti-spam_techniques

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]