C ++ с использованием производителя apache Кафка - PullRequest
0 голосов
/ 07 апреля 2020

Я новичок в C ++ и Apache Кафка. У меня есть файл json, и я хочу отправить его производителю Кафки. У меня есть Apache Кафка на моей локальной машине, добавьте librdkafka в мой проект, но я не знаю, как начать и что мне делать.

Я пытаюсь это:

int main (int arg c, char ** argv) {

std::string brokers = "127.0.0.1";
std::string errstr;
std::string topic_str = "linli";
std::string mode;
std::string debug;
int32_t partition = RdKafka::Topic::PARTITION_UA;
int64_t start_offset = RdKafka::Topic::OFFSET_BEGINNING;
bool do_conf_dump = false;
int opt;
// MyHashPartitionerCb hash_partitioner;
int use_ccb = 0;

RdKafka::Conf *conf = RdKafka::Conf::create(RdKafka::Conf::CONF_GLOBAL);
RdKafka::Conf *tconf = RdKafka::Conf::create(RdKafka::Conf::CONF_TOPIC);

conf->set("metadata.broker.list", brokers, errstr);

RdKafka::Producer *producer = RdKafka::Producer::create(conf, errstr);
if (!producer) {
    std::cerr << "Failed to create producer: " << errstr << std::endl;
    exit(1);
}

std::cout << "% Created producer " << producer->name() << std::endl;

RdKafka::ErrorCode resp = producer->produce(topic_str, partition,
    RdKafka::Producer::RK_MSG_COPY /* Copy payload */,
    (void *)"hi", 2,
    NULL, 0, 0, NULL);



std::string errs(RdKafka::err2str(resp));
std::cout << errs << std::endl;
//producer->poll(0);


delete producer;

return 0;

}

...