编程技术分享平台

网站首页 > 技术教程 正文

陪你一起学kafka(五)——kafka如何发送消息到nginx

xnh888 2024-09-21 06:01:02 技术教程 30 ℃ 0 评论

背景

在实际的项目中,我们经常会遇到各种网络域的隔离,通常各个网络域之间的通信,我们会通过nginx做代理,进行转发。那kafka的消息可以通过nginx转发吗,答案是肯定的。今天分享给大家详细的过程。美好的一天,从分享开始,加油!

准备

  • kafka,版本2.13-3.0.0
  • nginx,版本1.9.9

环境搭建

安装kafka

首先需要安装kafka,已安装好的可以忽略,没安装好的,可以参考我前面的文章,链接如下: https://juejin.cn/post/7075897456373792775

安装nginx

安装nginx-kafka插件

安装git

如果已安装可以忽略(也可以从本地上传)

gityum install -y git

找一个目录,将librdkafka依赖包克隆下来,这里我使用的目录是 /usr/local/src,在这个目录下执行

git clone https://github.com/edenhill/librdkafka

进入librdkafka进行编译

先安装依赖相关依赖

yum install -y gcc gcc-c++ pcre-devel zlib-devel

编译librdkafka插件,依次执行下列命令

cd librdkafka
./configure
make
make install

nginx集成librdkafka插件

#解压
tar -zxvf nginx-1.9.9.tar.gz
cd nginx-1.9.9/
#安装依赖
yum -y install gcc pcre-devel openssl openssl-devel
#预编译时将插件同时编译,后面跟的目录是 克隆的nginx整合kafka的插件的目录
./configure --add-module=/usr/local/src/ngx_kafka_module/
#编译
make
make install

修改nginx配置

安装后在/usr/local/下会有一个nginx目录(此处使用的是nginx默认安装目录,也可以预编译的时设置自定义目录) 在nginx的conf目录下的nginx.conf配置文件添加内容如下:

此时所有的安装配置就已经全部完成了。

启动nginx时可能出现的问题

如果在启动过程中,报错error while loading shared libraries: librdkafka.so.1: cannot open shared object file: No such file or directory 解决方法为: 执行下列命令

echo “/usr/local/lib” >> /etc/ld.so.conf
ldconfig

测试

测试前检查工作

  • 确定kafka安装完成并启动
  • 确定kafka创建了名字叫test的topic
  • 确定nginx启动
  • 如果是云服务器需要确定9092端口已经开放

发送消息

curl http://ip:端口/kafka/test -d "测试"

需要源码的可以关注公众号【温故知新之java】,更多干货与你分享。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表