当前位置:   article > 正文

Nginx整合Kafka_nginx kafka

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到本地

  1. cd /usr/local/src
  2. git clone https://github.com/edenhill/librdkafka

3.进入到librdkafka,然后进行编译浏览

  1. cd librdkafka
  2. # 安装必要的包
  3. yum install -y gcc gcc-c++ pcre-devel zlib-devel
  4. ./configure
  5. make && make install

4.下载ngx_kafka_module源码包

安装nginx整合kafka的插件,进入到/usr/local/src,clone nginx整合kafka的源码

  1. cd /usr/local/src
  2. git clone https://github.com/brg-liuwei/ngx_kafka_module

5.安装nginx整合kafka的插件

进入到nginx的源码包目录下(编译nginx,然后将将插件同时编译)

  1. cd /usr/local/src/nginx-1.20.2
  2. ./configure --add-module=/usr/local/src/ngx_kafka_module/
  3. make
  4. make install

6.修改nginx的配置文件

  1. [root@hadoop100 conf]# vim nginx.conf
  2. # '$status $body_bytes_sent "$http_referer" '
  3. # '"$http_user_agent" "$http_x_forwarded_for"';
  4. #access_log logs/access.log main;
  5. sendfile on;
  6. #tcp_nopush on;
  7. #keepalive_timeout 0;
  8. keepalive_timeout 65;
  9. #gzip on;
  10. #
  11. # ############### kafka config ###########################
  12. kafka;
  13. kafka_broker_list hadoop101:9092 hadoop102:9092 hadoop103:9092;
  14. # ############### kafka config ###########################
  15. server {
  16. listen 80;
  17. server_name localhost;
  18. #charset koi8-r;
  19. #access_log logs/host.access.log main;
  20. #location / {
  21. # root html;
  22. # index index.html index.htm;
  23. #}
  24. # ############### kafka config ###########################
  25. location /kafka/test {
  26. kafka_topic test;
  27. }
  28. # ############### kafka config ###########################
  29. #error_page 404 /404.html;
  30. # redirect server error pages to the static page /50x.html
  31. #
  32. error_page 500 502 503 504 /50x.html;
  33. location = /50x.html {
  34. root html;
  35. }

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库

  1. echo "/usr/local/lib" >> /etc/ld.so.conf
  2. ldconfig

10.测试,向nginx中写入数据,然后观察kafka的消费者能不能消费到数据

curl localhost/kafka/track -d "message send to kafka topic"
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/192813
推荐阅读
相关标签
  

闽ICP备14008679号