Nginx整合Kafka

背景

nginx-kafka-module是nginx的一个插件,可以将kafka整合到nginx中,便于web项目中前端页面埋点数据的收集,如前端页面设置了埋点,即可将用户的一些访问和请求数据通过http请求直接发送到消息中间件kafka中,后端可以通过程序消费kafka中的消息来进行实时的计算。比如通过SparkStream来实时的消费Kafka中的数据来分析用户PV,UV、用户的一些行为及页面的漏斗模型转化率,来更好的对系统进行优化或者对来访用户进行实时动态的分析。

具体整合步骤

1.安装git
    yum install -y git
2.切换到/usr/local/src目录,然后将kafka的c客户端源码clone到本地
    cd /usr/local/src
    git clone https://github.com/edenhill/librdkafka
3.进入到librdkafka,然后进行编译
    cd librdkafka
    yum install -y gcc gcc-c++ pcre-devel zlib-devel
    ./configure
    make && make install

4.安装nginx整合kafka的插件,进入到/usr/local/src,clone nginx整合kafka的源码
    cd /usr/local/src
    git clone https://github.com/brg-liuwei/ngx_kafka_module

5.进入到nginx的源码包目录下   (编译nginx,然后将将插件同时编译)
    cd /usr/local/src/nginx-1.12.2
    ./configure --add-module=/usr/local/src/ngx_kafka_module/
    make && make install

6.修改nginx的配置文件:设置一个location和kafaka的topic,详情请查看当前目录的nginx.conf
#添加配置(2处)
kafka;
kafka_broker_list f1:9092 f2:9092 f3:9092;

location = /kafka/access {
            kafka_topic access888;
        }

如下图:

7.启动zk和kafka集群(创建topic)
    zkServer.sh start
    kafka-server-start.sh -daemon config/server.properties

8.启动nginx,报错,找不到kafka.so.1的文件
    error while loading shared libraries: librdkafka.so.1: cannot open shared object file: No such file or directory
9.加载so库
    #开机加载/usr/local/lib下面的库
    echo "/usr/local/lib" >> /etc/ld.so.conf
    #手动加载
    ldconfig

10.测试,向nginx中写入数据,然后观察kafka的消费者能不能消费到数据
    curl http://localhost/kafka/access -d "message send to kafka topic"
    curl http://localhost/kafka/access -d "小伟666"

测试

也可以模拟页面埋点请求接口来发送信息:

后台Kafka消费信息如图:

原文地址:http://blog.51cto.com/simplelife/2307998

时间: 2024-08-01 11:57:10

Nginx整合Kafka的相关文章

nginx整合tomcat

环境:nginx ubuntu ip:10.12.18.112 tomcat1 ubutu ip:10.12.18.105 tomcat2 centos ip:10.12.18.127 client win7 ip:10.12.18.116 安装包:nginx-1.8.0.tar.gz Nginx 下载:http://nginx.org/en/download.html 解压 sudo tar –zxf nginx-1.8.0.tar.gz –C /usr/src 创建用户和组 sudo gro

nginx整合tomcat集群并做session共享----测试案例

最近出于好奇心,研究了一下tomcat集群配置,并整合nginx,实现负载均衡,session共享,写篇记录,防止遗忘.---------菜鸡的自我修炼. 说明:博主采用一个web项目同时部署到两台tomcat下,(tomcat-A,tomca-B),使用nginx做反向代理,按照设置的权值,将请求分发到后台的tomcatA/tomcat-B,并且实现session共享. 配置好本地域名指向:修改host文件:添加 127.0.0.1  www.domain.com.cn 新建项目:tiny-d

FastDFS 和nginx整合

失败的经历:     从昨晚到今晚,一直在配置这FastDFS 和nginx整合这两个东西.听了黑马的讲师说一个人第一次做这个,光是搭建一个最简单的分布式文件系统至少需要1天时间.其实看来,果然没错.不过大部分时间都花在了执行错误的方法上面. 可能有人是看过了传智播客的讲师错误配置方法之后才来网上寻找答案的,没错.拜托那个错误的配置文档之后,重新开启一台虚拟机,铛!!!!!花了4个小时左右,配置成功了. 下面是效果图: 总有一个体会,每次对一件事物感到深刻是对它想吐之后才会有.这次是真的恶心到我

10-编译PHP并与nginx整合

nginx的URL重写.nginx+PHP的配置也是不可不学的部分.PHP自己手动编译,mysql就自己yum了. 10-编译PHP并与nginx整合

nginx整合php+lua+oracle环境搭建

nginx整合php+lua+oracle环境搭建 标签: nginxluaoraclephplinux 2014-09-25 10:39 1473人阅读 评论(0) 收藏 举报 分类: 技术(70) 版权声明:本文为博主原创文章,未经博主允许不得转载. *执行 yum update 为了得到一个最新的系统 *执行 rpm -ivh oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm oracle-instantclient12.1-de

整合Kafka到Spark Streaming——代码示例和挑战

作者Michael G. Noll是瑞士的一位工程师和研究员,效力于Verisign,是Verisign实验室的大规模数据分析基础设施(基础Hadoop)的技术主管.本文,Michael详细的演示了如何将Kafka整合到Spark Streaming中. 期间, Michael还提到了将Kafka整合到 Spark Streaming中的一些现状,非常值得阅读,虽然有一些信息在Spark 1.2版本中已发生了一些变化,比如HA策略: 通过Spark Contributor.Spark布道者陈超我

php5.3 fastcgi方式 安装以及和nginx整合

php5.3 fastcgi方式 安装以及和nginx整合 注意:不要随便改变基础库的版本,否则会对别的软件产生编译错误 1.基础依赖包安装: cd /software/zlib-1.2.3./configuremakemake install cd /software/libxml2-2.6.30./configure --prefix=/usr/local/libxml2/make make install  cd /software/libmcrypt-2.5.8./configure -

php与nginx整合

PHP-FPM也是一个第三方的FastCGI进程管理器,它是作为PHP的一个补丁来开发的,在安装的时候也需要和PHP源码一起编译,也就是说PHP-FPM被编译到PHP内核中,因此在处理性能方面更加优秀:同时它在处理高并发方面也比spawn-fcgi引擎好很多,因此,推荐Nginx+PHP/PHP-FPM这个组合对PHP进行解析.FastCGI 的主要优点是把动态语言和HTTP Server分离开来,所以Nginx与PHP/PHP-FPM经常被部署在不同的服务器上,以分担前端Nginx服务器的压力

flume 整合 kafka

flume 整合 kafka: flume 采集业务日志,发送到kafka 安装部署Kafka Download 1.0.0 is the latest release. The current stable version is 1.0.0. You can verify your download by following these procedures and using these KEYS. 1.0.0 Released November 1, 2017 Source downloa