C/C++ 使用librdkafka库实现的生产者

2023-11-07

Installing prebuilt packages

On Mac OSX:

brew install librdkafka

On Debian and Ubuntu:

apt install librdkafka-dev

On RedHat, CentOS, Fedora:

yum install librdkafka-devel

Installing librdkafka using vcpkg:

# Install vcpkg if not already installed
$ git clone https://github.com/Microsoft/vcpkg.git
$ cd vcpkg
$ ./bootstrap-vcpkg.sh
$ ./vcpkg integrate install

# Install librdkafka
$ vcpkg install librdkafka
官方例子

https://github.com/edenhill/librdkafka/blob/master/examples/consumer.c

/*
 * librdkafka - Apache Kafka C library
 *
 * Copyright (c) 2017, Magnus Edenhill
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

/**
 * Simple Apache Kafka producer
 * using the Kafka driver from librdkafka
 * (https://github.com/edenhill/librdkafka)
 */

#include <stdio.h>
#include <signal.h>
#include <string.h>


/* Typical include path would be <librdkafka/rdkafka.h>, but this program
 * is builtin from within the librdkafka source tree and thus differs. */
#include "rdkafka.h"


static volatile sig_atomic_t run = 1;

/**
 * @brief Signal termination of program
 */
static void stop (int sig) {
   
        run = 0;
        fclose(stdin); /* abort fgets() */
}


/**
 * @brief Message delivery report callback.
 *
 * This callback is called exactly once per message, indicating if
 * the message was succesfully delivered
 * (rkmessage->err == RD_KAFKA_RESP_ERR_NO_ERROR) or permanently
 * failed delivery (rkmessage->err != RD_KAFKA_RESP_ERR_NO_ERROR).
 *
 * The callback is triggered from rd_kafka_poll() and executes on
 * the application's thread.
 */
static void dr_msg_cb (rd_kafka_t *rk,
                       const rd_kafka_message_t *rkmessage,
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C/C++ 使用librdkafka库实现的生产者 的相关文章

随机推荐

  • 添加和修改docker容器端口映射的方法

    一 添加docker容器端口映射 以tomcat容器为例 root localhost docker run name mytomcat d p 8888 8080 tomcat name 创建的tomcat镜像名称 d 后台运行 p 将主
  • CTF中phpinfo应注意什么

    CTF中 phpinfo应注意什么 1 allow url fopen和allow url include 这个配置选项可以知道在PHP文件包含中可以使用哪些伪协议 2 PHP版本 3 open basedir 这个配置选项可以知道PHP将
  • eclipse打开之后没有界面

    自己工作的电脑上的eclipse经常打开之后没有界面显示出来 但是后台有eclipse和java的进程在运行 这个时候要进入到当前eclipse选择的工作目录 也就是打不开eclipse界面的那个工作目录 中的 gt metadata pl
  • 深入理解原码、反码和补码及其在计算机中的应用【附代码】

    目录 引言 一 原码 Sign Magnitude 二 反码 One s Complement 三 补码 Two s Complement 四 代码实例 结论 参考资料 引言 在计算机科学中 原码 反码和补码是表示有符号整数的三种常见编码方
  • JSON解析器之Gson、FastJson、Jackson

    文章目录 1 Gson 谷歌 2 FastJson 阿里 3 JackSon JSON解析器 常见的解析器 Jsonlib Gson fastjson jackson 1 Gson 谷歌 最好使用最新jar包 百度搜索Gson然后去GitH
  • NFT相关的常见术语

    NFT 爱好者在谈论这个东西时候总是会有一堆让人眼花缭乱的术语 对非圈内人来说会感觉难以理解 这里整理了23个术语解释来帮助你理解 1 10k 项目 一个 10k 项目是一个由大约 10 000 个头像组成的 集邮 项目 这种类型的 NFT
  • 如何在GitHub上传大文件(≥100M)

    学习工作中 有时会遇到需要将一些资源上传到GitHub的仓库 repository 上去 比如一些训练完的模型 但GitHub对于直接上传的文件有大小限制 超过100M的文件需要使用Git LFS才能上传 以下是我根据各位大神和自己的实操经
  • switch 语句 -- 超详解

    目录 语法结构 在switch 语句中的break default 子句 编程好习惯 语法结构 switch 整型表达式 语句项 那么语句项是什么呢 是一些case语句 如下 case 整形常量表达式 语句 在switch 语句中的brea
  • 论文研读 —— 9. DensePose From WiFi

    文章目录 Authors Bibtex 0 ABSTRACT 1 INTRODUCTION 2 RELATED WORK 3 METHODS 3 1 Phase Sanitization 3 2 Modality Translation N
  • linux编译新内核放在哪,将新文件系统编译到Linux内核中

    我正在努力在Debian上构建一个新的文件系统作为原型 因为现有的文件系统不符合我的某些要求 它旨在成为评估我们所拥有的某些要求的原型 到目前为止的步骤 我正在尝试使用provided MakeFile进行项目 但这是我得到的错误 make
  • 夜深人静学32系列5——STM32MAP文件浅析&启动过程

    STM32MAP文件浅析 启动过程 MAP文件浅析 1 MDK中间文件 2 MAP文件浅析 实际的MAP文件 你找不到你的MAP文件 STM32启动过程 启动过程 启动文件介绍 上期我们学习了STM32的寄存器映射相关内容 本期我们一起来学
  • xenserver使用cli进行主机池添加

    使用 CLI 将 XenServer 主机 host1 和 host2 加入到资源池 1 在 XenServer 主机 host2 中打开控制台 2 运行以下命令 指示 XenServer 主机 host2 加入位于 XenServer 主
  • win10如何校验文件哈希值

    转自 https jingyan baidu com article 67662997a9b06654d51b84a1 html 文件的哈希值可以用软件计算 算法一样 无须多讲 本文讲述如何用win10自带命令计算 右击开始 点击windo
  • vue3实现没有误差的时间 moment

    使用requestAnimationFrame 方法实现 window requestAnimationFrame 告诉浏览器 你希望执行一个动画 并且要求浏览器在下次重绘之前调用指定的回调函数更新动画 该方法需要传入一个回调函数作为参数
  • 嵌入式Qt-简易网络监控摄像头

    本编利用Qt实现一个网络摄像头功能 包含一个服务端和一个客户端 服务端用于将USB摄像头转换为一个IP摄像头 当有客户端连接时 将其捕获到的图像通过TCP发送出去 客户端运行在Linux板子上 用于查看摄像头的实时画面 1 必备基础知识 本
  • 使用lxml.etree解析中文网页时出现乱码问题的解决办法

    你也可以通过我的独立博客 www huliujia com 获取本篇文章 吐槽 不得不说网络这个东西害死人 一群只会复制粘贴的瓜皮儿 没一点有用的答案 还要写的像模像样装x 这个问题折腾了一个晚上 晚上找了各种方案 都是相互抄 然而都不能解
  • Mayor's posters

    点击打开链接 Description The citizens of Bytetown AB could not stand that the candidates in the mayoral election campaign have
  • Hive-SQL取一个月用户留存率、留存用户数

    一 最基础版 次日留存率 代码如下 select date count count B user id as rate from select user id date from app launch where date 2022 08
  • 大数据论文_03_BigTable(个人总结)

    声明 1 本文为我的个人复习总结 并非那种从零基础开始普及知识 内容详细全面 言辞官方的文章 2 由于是个人总结 所以用最精简的话语来写文章 3 若有错误不当之处 请指出 BigTable 一 出现的原因 没有BigTable时 如MySQ
  • C/C++ 使用librdkafka库实现的生产者

    Installing prebuilt packages On Mac OSX brew install librdkafka On Debian and Ubuntu apt install librdkafka dev On RedHa