Nginx Kafka Module 安装与演示
目录
Nginx Kafka Module 安装与演示
1 背景及准备
Nginx kafka module is used to receive http post data and deliver messages to kafka
Nginx Kafka Module 是一个 Nginx 的模块,用来接收 http 发送的数据,并投递给 Kafka
适用场景举例:在网站上记录用户行为(比如点击了某一个链接),直接投递给 Kafka ,省去了采集日志的环节,或避免了复杂的业务逻辑
ZooKeeper 、Kafka 集群的搭建(略)
|
|
2 安装 librdkafka 依赖
|
|
3 安装 Nginx ,集成 ngx_kafka_module 模块
|
|
此时使用浏览器访问,能正常看到 Nginx 的欢迎页面:
4 修改配置文件
|
|
-
在
server {
上方,添加 kafka 的 broker 列表-
1 2 3 4 5 6 7 8 9 10 11 12 13
## ... http { ## ... # kafka 配置 kafka; kafka_broker_list centos7-1:9092 centos7-2:9092 centos7-3:9092; server { listen 80; ## ...
-
-
在
server { }
内,添加监听路径和目标主题-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
## ... # kafka 配置 kafka; kafka_broker_list centos7-1:9092 centos7-2:9092 centos7-3:9092; server { ## ... location / { root html; index index.html index.htm; } # 监听 kafka 请求 location = /kafka/test { kafka_topic test_nginx; } ## ...
-
-
重启 Nginx
-
1
nginx -s reload
-
5 测试
-
创建主题,开启 console 消费者
-
1 2 3 4 5 6 7 8
# 创建主题 afka-topics.sh --zookeeper centos7-1:2181/mykafka --create --topic test_nginx --partitions 1 --replication-factor 1 # 描述主题 kafka-topics.sh --zookeeper centos7-1:2181/mykafka --describe --topic test_nginx # 开启 console 消费者 kafka-console-consumer.sh --bootstrap-server \ centos7-1:9092 --topic test_nginx --from-beginning
-
-
使用 curl 发送 http 请求,进行测试
-
1 2 3
curl localhost/kafka/test -d "zhangsan" curl localhost/kafka/test -d "lisi" curl localhost/kafka/test -d "liuyi" -v
-
-
console 消费者成功拉取到消息