【136】Kafka 在阿里云服务器上,如何让客户端可以通过公网访问?

2 篇文章 0 订阅

场景:

公司统一使用阿里云服务器,原来的开发服务器也用的阿里云服务器。为了方便开发人员,不想让开发人员在自己电脑上再运行kafka服务器和zookeeper服务器。希望所有开发人员都直接连接阿里云上的kafka服务器,方便开发。

遇到的问题:

Kafka服务器默认是不支持绑定到公网IP的。哪怕你把配置文件 config/server.properties 中的配置项 advertised.listeners=PLAINTEXT://你的地址:9092 设置成公网IP都没用。Kafka 服务器在启动的时候会报错,并且导致无法启动。

解决方法:

本人实验,直接设置IP是无效的。当然也可能是我没想到好方法。我的思路是利用客户端和阿里云服务器对域名的不同解析来解决这个问题。

首先要有个公网的域名能够绑定你的服务器的公网IP。

把 kafka 压缩包下载,解压并上传到服务器上。利用cd命令进入kafka目录。

找到 config/server.properties 文件,确保有一项配置是这样的:

advertised.listeners=PLAINTEXT://your.host.cn:9092

其中 your.host.cn 就是你的公网域名。listeners= 这一项注释掉。

修改 hosts,执行命令 vi /etc/hosts 加入下面这项:

172.12.13.104 your.host.cn

其中 172.12.13.104 是阿里云服务器的内网IP,your.host.cn 是你的公网域名。
`

阿里云服务器安装 screen

yum install -y screen

用screen 是为了方便查进程和杀死进程。

因为Kafka依赖zookeeper,先运行zookeeper

screen -S zk_kafka

进入新屏幕后启动 zookeeper

bin/zookeeper-server-start.sh config/zookeeper.properties

按 ctrl + A + D 退出zookeeper 的屏幕。

创建 kafka 服务器的屏幕:

screen -S kafka

在新屏幕运行命令:

bin/kafka-server-start.sh config/server.properties

按 ctrl + A + D 退出 kafka 的屏幕。

执行命令: ps -auxf 可以清晰的看到进程树。

为了验证效果,我在自己的笔记本上测试了一下。笔记本是WIndows操作系统。kafka压缩包在windows上解压,在命令行通过 cd 命令进入 kafka 目录。执行下面的命令:

bin\windows\kafka-topics.bat --list --bootstrap-server relationship.centling.cn:9092

如果没报错,能看到服务器上的topic,就算是成功了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在阿里云服务器上搭建Hadoop、Kafka、JDK环境的步骤: 1. 安装JDK 在阿里云服务器上下载JDK安装包,解压后配置环境变量。可以使用以下命令检查JDK是否安装成功: ``` java -version ``` 2. 安装Hadoop 在阿里云服务器上下载Hadoop安装包,解压后配置环境变量。配置Hadoop的环境变量需要在.bashrc文件添加以下内容: ``` export HADOOP_HOME=/path/to/hadoop export PATH=$PATH:$HADOOP_HOME/bin ``` 然后使用以下命令检查Hadoop是否安装成功: ``` hadoop version ``` 3. 安装Kafka阿里云服务器上下载Kafka安装包,解压后配置环境变量。配置Kafka的环境变量需要在.bashrc文件添加以下内容: ``` export KAFKA_HOME=/path/to/kafka export PATH=$PATH:$KAFKA_HOME/bin ``` 然后使用以下命令检查Kafka是否安装成功: ``` kafka-topics.sh --list --zookeeper localhost:2181 ``` 4. 配置Hadoop和Kafka 在Hadoop的配置文件,需要添加Kafka的jar包路径到Hadoop的CLASSPATH。可以使用以下命令将Kafka的jar包添加到CLASSPATH: ``` export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/path/to/kafka/libs/kafka-clients-2.8.0.jar:/path/to/kafka/libs/kafka_2.13-2.8.0.jar ``` 在Kafka的配置文件,需要添加Hadoop的jar包路径到Kafka的CLASSPATH。可以使用以下命令将Hadoop的jar包添加到CLASSPATH: ``` export CLASSPATH=$CLASSPATH:/path/to/hadoop/share/hadoop/common/hadoop-common-3.3.1.jar:/path/to/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-core-3.3.1.jar ``` 5. 启动Hadoop和Kafka 使用以下命令启动Hadoop: ``` start-dfs.sh start-yarn.sh ``` 使用以下命令启动Kafka: ``` zookeeper-server-start.sh -daemon /path/to/kafka/config/zookeeper.properties kafka-server-start.sh -daemon /path/to/kafka/config/server.properties ``` 现在,您已经在阿里云服务器上成功搭建了Hadoop、Kafka和JDK环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值