zoukankan      html  css  js  c++  java
  • kafka c++客户端编译

      Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群机来提供实时的消费。

      下面讲解kafka的c++客户端编译链接过程。

      1. 在下面的网址可以找到各种语言的客户端地址:https://cwiki.apache.org/confluence/display/KAFKA/Clients#Clients-C/C++ 

      可以找到c/c++客户端地址:https://github.com/edenhill/librdkafka

      2. 下载解压后,在目录下执行:./configure

      3. 报错如下:

        

    ###########################################################
    ###                  Configure failed                   ###
    ###########################################################
    ### Accumulated failures:                               ###
    ###########################################################
     __sync_32 (HAVE_ATOMICS_32) 
        module: atomics
        action: disable
        reason:
    compile check failed:
    CC: CC
    flags: 
    gcc  -g -O2 -fPIC -Wall -Werror  _mkltmp30679.c -o _mkltmp30679.c.o  :
    /tmp/ccUxfUe4.o: In function `foo':
    /home/xumj/support/kafka/librdkafka-master/_mkltmp30679.c:4: undefined reference to `__sync_add_and_fetch_4'
    collect2: ld 返回 1
    source: 
    #include <inttypes.h>
    int32_t foo (int32_t i) {
      return __sync_add_and_fetch(&i, 1);
    }
    
     __sync_64 (HAVE_ATOMICS_64) 
        module: atomics
        action: disable
        reason:
    compile check failed:
    CC: CC
    flags: 
    gcc  -g -O2 -fPIC -Wall -Werror  _mkltmp30720.c -o _mkltmp30720.c.o  :
    /tmp/ccyNHxii.o: In function `foo':
    /home/xumj/support/kafka/librdkafka-master/_mkltmp30720.c:4: undefined reference to `__sync_add_and_fetch_8'
    collect2: ld 返回 1
    source: 
    #include <inttypes.h>
    int64_t foo (int64_t i) {
      return __sync_add_and_fetch(&i, 1);
    }

      请使用下面的命令执行:

        CFLAGS="-O2 -march=i686" ./configure --cc=gcc --cxx=g++ --arch=i686 --mbits=32 --prefix=/home/test/support/kafka/install

      4. 执行make

      5. 执行make install.

      

  • 相关阅读:
    Linux命令应用大词典-第11章 Shell编程
    Kubernetes 学习12 kubernetes 存储卷
    linux dd命令
    Kubernetes 学习11 kubernetes ingress及ingress controller
    Kubernetes 学习10 Service资源
    Kubernetes 学习9 Pod控制器
    Kubernetes 学习8 Pod控制器
    Kubernetes 学习7 Pod控制器应用进阶2
    Kubernetes 学习6 Pod控制器应用进阶
    Kubernetes 学习5 kubernetes资源清单定义入门
  • 原文地址:https://www.cnblogs.com/foreverstars/p/5158721.html
Copyright © 2011-2022 走看看