gpt4 book ai didi

C++ with Kafka - 消费者只收到一些生产者消息

转载 作者:搜寻专家 更新时间:2023-10-31 02:09:14 30 4
gpt4 key购买 nike

我正在使用以下 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!
}
}

在我运行 ZookeeperKafka 服务器 的机器上,我正在运行一个 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 服务器没有收到我的所有消息?

最佳答案

原始评论:

It is probably sort of spam prevention, i.e. sending messages out too quickly and the server is just ditching them

Web 服务器提供商开发了许多不同的反垃圾邮件技术。这是为了阻止有人通过发送大量网络流量向您的服务器发送垃圾邮件。我认为这可能是您正在做的事情

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

关于C++ with Kafka - 消费者只收到一些生产者消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46707480/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com