Nginx整合Kafka
2022/1/11 7:06:05
本文主要是介绍Nginx整合Kafka,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Nginx:一个高性能的HTTP和反向代理web服务器,实际生产中一般用作负载均衡;
Kafka:一种高吞吐量的分布式发布订阅消息系统,实际生产中一般用作流式处理中间件;
Nginx和Kafka都有非常优秀的性能,实际生产中,往往都是通过Nginx记录日志生成日志文件,然后再通过Flume将日志文件的内容读取到Kafka,中间会有一个写文件和读文件操作,性能势必会受到一些影响;
下面介绍一下把Nginx的日志直接写入到Kafka的实现过程:
1.安装git
git主要用于拉取源码文件
yum install -y git
2.下载librdkafka源码包
切换到/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.下载ngx_kafka_module源码包
安装nginx整合kafka的插件,进入到/usr/local/src,clone nginx整合kafka的源码
cd /usr/local/src git clone https://github.com/brg-liuwei/ngx_kafka_module
5.安装nginx整合kafka的插件
进入到nginx的源码包目录下(编译nginx,然后将将插件同时编译)
cd /usr/local/src/nginx-1.20.2 ./configure --add-module=/usr/local/src/ngx_kafka_module/ make make install
6.修改nginx的配置文件
[root@hadoop100 conf]# vim nginx.conf # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; # # ############### kafka config ########################### kafka; kafka_broker_list hadoop101:9092 hadoop102:9092 hadoop103:9092; # ############### kafka config ########################### server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; #location / { # root html; # index index.html index.htm; #} # ############### kafka config ########################### location /kafka/test { kafka_topic test; } # ############### kafka config ########################### #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }
7.启动zk和kafka集群(创建topic)
bin/kafka-topics.sh --zookeeper hadoop101:2181 --create --topic test --partitions 3 --replication-factor 2
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库
echo "/usr/local/lib" >> /etc/ld.so.conf ldconfig
10.测试,向nginx中写入数据,然后观察kafka的消费者能不能消费到数据
curl localhost/kafka/track -d "message send to kafka topic"
这篇关于Nginx整合Kafka的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-13用Nginx防范DDoS攻击的那些事儿
- 2024-12-13用Terraform在AWS上搭建简单NGINX服务器指南
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享