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消费信息如图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • FastDFS安装和配置整合Nginx-1.13.3的方法

    一:下载FastDFS 我们一共需要三个文件 1.FastDFS 分布式文件存储系统 下载地址:https://codeload.github.com/happyfish100/fastdfs-client-java/zip/master 2.libfastcommon FastDFS函数库 下载地址:  https://codeload.github.com/happyfish100/libfastcommon/zip/master 3.fastdfs-nginx-module 连接Nginx

  • centos6.4+nginx+mysql+php+phpmyadmin整合过程详解

    本文实例讲述了centos6.4+nginx+mysql+php+phpmyadmin整合过程.分享给大家供大家参考,具体如下: 装了很多次机,做了很多次重复工作,最后,总结以下装CentOS经验: 注:很多问题其实都不是问题,先把selinux关了!setenforce 0 ,不然会死的很惨! 1. 先更新源 启用国内的源:163或sohu 163:http://mirrors.163.com/.help/centos.html 如果想使用新的软件,建议用REPL和remi的源 #remi的源

  • 详解Linux下Nginx+Tomcat整合的安装与配置

    一.安装Tomcat和JDK 1.上传apache-tomcat-6.0.18.tar.gz和jdk-6u12-linux-i586.bin至/usr/local 2.执行如下命令安装tomcat: #cd /usr/local #tar zxvf apache-tomcat-6.0.18.tar.gz 解压完成后将apache-tomcat-6.0.18重命名为tomcat 3.执行如下命令安装JDK: #./jdk-6u12-linux-i586.bin 4.配置环境变量: 编辑/etc下的

  • 在Linux系统中将Redmine和SVN整合入Nginx的方法

    Redmine:是一个基于web的项目管理软件,用Ruby开发的.是基于ROR框架开发的一套跨平台项目管理系统,是项目管理系统的后起之秀,据说是源于Basecamp的ror版而来,支持多种数据库,除了和DotProject的功能大致相当外,还有不少自己独特的功能,例如提供wiki.新闻台.时间跟踪.feed聚合.导出pdf等等,还可以集成其他版本管理系统和BUG跟踪系统,例如SVN.CVS.TD等等.配置功能强大而且方便,自定义属性和更新通知也很实用.下面我们来部署redmine+svn项目管理

  • 关于Spring Boot WebSocket整合以及nginx配置详解

    前言 本文主要给大家介绍了关于Spring Boot WebSocket整合及nginx配置的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 一:Spring Boot WebSocket整合 创建一个maven项目,加入如下依赖 <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId>

  • Nginx整合Kafka的方法示例

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

  • SpringBoot中整合MyBatis-Plus的方法示例

    MyBatis 框架相信大家都用过,虽然 MyBatis 可以直接在 xml 中通过 SQL 语句操作数据库,很是灵活.但正其操作都要通过 SQL 语句进行,就必须写大量的 xml 文件,很是麻烦.于是 MyBatis-Plus 应运而生,作为 MyBatis 的增强工具,更是为我们开发效率得到了质的飞跃. 一.简介 1.MyBatis MyBatis 是一款优秀的持久层框架,它支持自定义 SQL.存储过程以及高级映射.MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工

  • keepalived+nginx高可用实现方法示例

    1.keepalived介绍 keepalived最初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了实现高可用的VRRP功能.keepalived除了能够管理LVS软件外,还能支持其他服务的高可用解决方案. keepalived通过VRRP协议实现高可用功能的.VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议.VRRP出现的目的就是为了解决静态路由单点故障问题,它能保证当个别节点宕机时,整个网络可以不

  • nginx配置https的方法示例(免费证书)

    一.我们需要什么证书 之前写过一篇<tomcat https配置方法(免费证书)>的简书(想看的可以去我的主页里面看下,这两篇之间还是有许多相关联的知识的~),里面有提到过常用证书的分类,其中nginx使用的就是PEM格式的证书,我们将其拆分开就是需要两个文件,一个是.key文件,一个是.crt文件. 二.怎样获取免费证书 这里提供两个方法: 第一种:如果你是windows用户,且有.keystore格式的证书 那么你可以使用JKS2PFX转换工具,将你的keystore证书转换为PEM证书,

  • 如何用nginx配置wordpress的方法示例

    之前,我曾自己搭建过Wordpress,只不过那时候用的是第三方的虚拟主机,一台机器上可能有几十个网站.那时候的虚拟机还没做到物理层面的隔离,一个网站占用资源可能会导致所有网站宕机. 最近尝试了下在阿里云ecs上搭建了独立的wordpress,记录下搭建的过程. 原先我想尝试使用apache作为wordpress的容器,用nginx作为反向代理直接代理到apache.但是在我使用了apache后,发现了一个问题,直接使用nginx作为反向代理,转到apache后,url伪静态貌似无法访问,好像需

  • 使用supervisor管理nginx+tomcat容器的方法示例

    需求: 使用docker来启动nginx + tomcat 双进程,实际应用中,多进程还是比较常见的. 1: 创建dockerfile目录 mkdir -p /docker/web 2: 编写dockerfile: /docker/web/Dockerfile FROM centos7 MAINTAINER lin test@163.com COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo COPY nginx_install.sh

  • SpringBoot整合Swagger的方法示例

    依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactI

  • SpringBoot 2.x 整合Lombok的方法示例

    简介 lombok是一个编译级别的插件,它可以在项目编译的时候生成一些代码.比如日常开发过程中需要生产大量的JavaBean文件,每个JavaBean都需要提供大量的get和set方法,如果字段较多且发生变动的话修改起来相对繁琐,相应的lombok可以通过注解(@getter,@setter)为我们省去手动创建getter和setter方法的麻烦,它能够在我们编译源码的时候自动帮我们生成getter和setter方法. 即它最终能够达到的效果是:在源码中没有getter和setter方法,但是在

  • 解决Nginx端口冲突的排查方法示例

    问题描述 一个Spring + Angular前后端分离的项目,使用Nginx进行数据转发. Nginx监听端口8100,前台端口4200,后台端口8080. 像往常一样,提前配置好MySQL.配置好Redis,引入项目的Nginx配置文件,然后启动前台.后台,成功. 接下来出现了问题:前台发起的请求,只有极少数能被后台接收到,大部分都是404,随着在浏览器中的点击,控制台不断的出现404. 如果只是404,那问题就很简单,很大可能是Nginx端口转发设置错了.但它的神奇之处就在于,还有那么几次

  • springboot整合阿里云oss上传的方法示例

    OSS申请和配置 1. 注册登录 输入网址:https://www.aliyun.com/product/oss 如果没有账号点击免费注册,然后登录. 2.开通以及配置 点击立即开通 进入管理控制台 第一次使用会出现引导,按引导点击"我知道了",然后点击创建Bucket. 如果没有存储包或流量包点击购买. 点击确定,返回主页面,出现该页面,点击我知道了 将EndPoint记录下来,方便后期添加到我们项目的配置文件中 创建 AccessKeyID 和 AccessKeySecret 点击

随机推荐