关于在云服务器部署docker后,部署kafka,外网无法访问解决方式
这里主要测试的华为云服务器,但是我想所有的云服务器应该是大同小异的,其次是外网访问阶段,kafka部署后无法访问,以及在容器中更改了server.properties,重启容器还是不正确,通过查找发现服务器可以做以下修改之后就能成功使用kafka tools和代码访问kafka了
这里使用的kafka和zookeeper
docker pull wurstmeister/zookeeper docker pull wurstmeister/kafka
1.进入hosts文件
vi /etc/hosts //添加公网ip 公网ip
2.删除已经部署好的kafka,也可以不做删除,但重新给端口,命名就可以了
docker run -d --name kafka -p 9093:9093 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=(一定要是公网ip,否则远程是无法操作kafka的,kaka tools也是无法使用的):2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://(一定要是公网ip,否则远程是无法操作kafka的,kaka tools也是无法使用的):9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka
这个时候其实已经可以访问kafka了,但是有些人还是无法访问,究其原因是因为在云服务器的出入站规则中没有增加2181端口和个人给的kafka端口,所以无法访问的,以下是我的出入站规则
3.现在就能通过代码测试是否可以访问了,我这里创建了一个test的topic;然后还可以通过kafka tools查看是否有kafka了.
package com.project.spark.util /** * @Author : * @Date : Create in 2019-07-17 14:40 * @Description :<描述> */ object Producer extends App { import java.util.Properties import org.apache.kafka.clients.producer.{KafkaProducer, ProducerRecord} val topic = "par" val brokers = "公网ip:9092" val props = new Properties() props.put("bootstrap.servers", brokers) props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer") props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer") val producer = new KafkaProducer[String, String](props) val t = System.currentTimeMillis() var msg = "启动成功" val record = new ProducerRecord[String, String](topic, "key", msg) producer.send(record) producer.close() }
关于有些小伙伴在这些都做成功之后,在控制台begin topic的时候发现有以下错误
[2019-07-18 05:45:26,746] WARN [Consumer clientId=consumer-1, groupId=console-consumer-74208] Connection to node -1 (/192.168.0.152:9093) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient) [2019-07-18 05:45:26,849] WARN [Consumer clientId=consumer-1, groupId=console-consumer-74208] Connection to node -1 (/192.168.0.152:9093) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient) [2019-07-18 05:45:26,950] WARN [Consumer clientId=consumer-1, groupId=console-consumer-74208] Connection to node -1 (/192.168.0.152:9093) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient) [2019-07-18 05:45:27,152] WARN [Consumer clientId=consumer-1, groupId=console-consumer-74208] Connection to node -1 (/192.168.0.152:9093) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient) [2019-07-18 05:45:27,654] WARN [Consumer clientId=consumer-1, groupId=console-consumer-74208] Connection to node -1 (/192.168.0.152:9093) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient) [2019-07-18 05:45:28,558] WARN [Consumer clientId=consumer-1, groupId=console-consumer-74208] Connection to node -1 (/192.168.0.152:9093) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
这个原因是因为你开启的时候ip没有写公网ip,所以会造成无法连接,下面是我测试的几条命令
kafka-console-consumer.sh --bootstrap-server 公网ip:给的端口 --topic par --from-beginning kafka-console-consumer.sh --bootstrap-server 公网ip:给的端口 --topic par --from-beginning
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里云轻量服务器有什么值得购买的理由
在选择阿里云服务器类产品的时候,经常有人会困惑,阿里云的轻量服务器与一直很火的ECS有什么区别,到底哪一个更好,今天本人就把阿里云发布的文档说明做一个简单概括。 首先,轻量应用服务器和ecs云服务器,不存在哪个更好的问题,只能说根据自己的实际情况,花最小的钱能满足需求就可以。阿里云轻量服务器适用于一些小型网站的搭建,拥有专属空间,轻量应用服务器是面向单机应用场景的新一代计算服务,提供应用一键部署、一站式域名解析、网站发布、安全、运维、应用管理等服务。极大地优化了搭建简单应用的体验,降低了入门级用户使用云计算产品的门槛。它的优点也很明确: 1.简单易用产品针对单机用户的购买和使用做了操作和使用优化,提供精品镜像、资源套餐、多产品关联(VPC、安全产品、域名管理等)。简单三步就可以轻松开始使用轻量应用服务器。可一键启动服务器和应用,一站式的应用管理和运维,应用集成丰富。 2.性价比高提供了很多基础功能, 价格相对整体配置打包价格较低,全产品线使用 SSD 存储,以及 ECS 共享型实例。 跟ECS相比,ECS其实是一个虚拟的计算环境,包含了CPU、内存、操作系统、磁盘、带宽等最基础的服务器...
- 下一篇
借助URLOS快速安装Apache-PHP-5.6网站环境
环境需求 最低硬件配置:1核CPU,1G内存(1+1)提示:如果你的应用较多,而主机节点的硬件配置较低,建议在部署节点时开通虚拟虚拟内存; 生产环境建议使用2G或以上内存; 推荐安装系统:Ubuntu-16.04、Ubuntu-18.04、CentOS7.X、Debian9X的64位的纯净的操作系统; URLOS安装 curl -LO www.urlos.com/iu && sh iu Apache-PHP-5.6网站环境安装流程 登录URLOS系统后台,在应用市场中选择别名并搜索“Apache-PHP-5.6网站环境”,找到之后,选择合适的版本点击安装按钮 填写服务名称、选择运行节点、服务端口、选择智能部署 填写域名:www.aaa.com(这里填写自己的域名) 创建数据库:选择“自动添加并部署数据库”、填写数据库密码 然后点击“提交”按钮,等待部署完成。 访问http://域名
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS关闭SELinux安全模块
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8编译安装MySQL8.0.19