当前位置:首页 » 密码管理 » 访问kafka

访问kafka

发布时间: 2023-05-22 05:21:54

‘壹’ kafka 设置外网访问

源地址: https://blog.51cto.com/395469372/2464399
前提条件
需要一个解析到内网ip地址的域名,内网环境也可以设置/etc/hosts

参数设置
host.name=kafka.test.com(对应的域名解析需要解到内网ip)
高版本已弃用。低版本0.10.2.1可以用, 仅当listeners属性未配置时被使用,已用listeners属性代替。表示broker的hostname

advertised.listeners= PLAINTEXT://kafka.test.com:9092 (高版本用,替代 host.name ,设置了advertised.listeners不用设置 host.name )
注册到zookeeper上并提供给客户端的监听器,如果没有配置则使用listeners。

advertised.host.name(不需要设置,仅作参考)
已弃用。仅当advertised.listeners或者listeners属性未配置时被使用。官网建议使用advertised.listeners

listeners(不肆做需要设置,仅作参考)
需要监听的URL和协议,如: PLAINTEXT://myhost:9092,SSL://:9091 CLIENT://0.0.0.0:9092,REPLICATION://localhost:9093 。如果喊隐未指定该配置,则使用 java.net.InetAddress.getCanonicalHostName() 函数的的返回值裂渗衡

修改上broker的/etc/hosts文件
[内网ip] kafka.test.com

修改外网访问服务器上的/etc/hosts文件
[外网ip] kafka.test.com

‘贰’ 如何通过外网连接内网kafka程序

一、内网IP只能带闭在内网局域网访问连接,在外网是不能认识内网IP不能访问的。如有路由权限,且路由有固定公网IP,可以通过路由的端口映射,实现外网访问内网。如无路由,或路由无公网IP,需要借助第三方开放的nat123端口映射网络辅助实现外网访问内网。
端口映射网络辅助的好处是适用于任何网络环境,外网访问内网的实现过程:

在内网安装并启用nat123端口映射。添加映射,配置内外网映射信息,对应内网IP端口和外网自己的域名。外网地址贺拍可直接使用提示默认域名。

NAT映射后,通过域名访问,即可以连接内网对应IP应用。

二、要用到第三方开放的花生壳端口映射网络辅助实现外网访问内网。
方法

1、在内网安装并启用花生壳端口映射。添加映射,配置内外网映射信息,对应内网IP端口和外网自己的域名。外网地址可直接使用提示默认域名。

2、点击你想映射的域名,进入花生壳端口映射添加界面,点击打开内网映射。

3、应用名称可以随便填个好记的,内网主机就是你想被公网访问的那台电脑IP地址,内网端口就是希望被映射的端口,如下。我的内网主机是本机,就是192.168.21.250,希望被映射的端口是1024。点击确定,就启动端口映射了。

4、现在端口映射窗口就会添加一条映射记录,此时,花生壳映射后,通过域名访蠢拍裂问,即可以连接内网对应IP应用。公网只要使用花生壳分配的这个域名+端口,就可以访问内网的主机了。

‘叁’ windows 下远程连接kafka服务器并创建topic 部署服务

一.打包项目镜像:

利用Dockerfile 来打包项目的镜像
本次项目共依赖两个镜像(一个基础系统环境和一个项目镜像)
本次直接将Dockerfile写好后,用shell脚本build.sh启动打包:

然后切换到项目的目录下找到build.sh,运行即可打包项目镜像



报错:"failed to dial gRPC: cannot connect to the Docker daemon. Is 'docker daemon' running on this host?: dial unix /var/run/docker.sock: connect: permission denied
"
就用

出现以下说明打包成功,接下来可以开始部署:

https://jingyan..com/article/9113f81b49ed2f2b3214c7fa.html

注意:如果遇到只读权限不能修改时,将host文件复制一份到桌面,修改后在替换原来的host文件
在hosts文件末尾加上kafka服务器< !外网! 39. 0.25...>地址,修改后的格式如下:
1.1注意: 修改阿里云服务器的hosts 文件来配置 kafka的服务器地址:

在hosts 文件最后加入:

添加的 kafka-server 就是以下创建topic命令中的 kafka-server别名,

监听远程kafka:新建宽辩顷消费者:

远程创建topic的实例:

查看远程已创建的topc:

本地:

远程修改后的kafka topic:

2.通过git Bash 切换到kafka客户端的bin目录:
桌面打开 gitBash,切换到本地kafka软件目录:

这里一定要切换为windows

3.查看已经有的topic

--topic 指定topic名字
--replication-factor 指定副本数,因为我的是集群环境,这里副本数就为3
--partitions 指定分区数,这个参数需要根据broker数和数据量决定,正常情况下,每个broker上两慎陆个partition最好

注意:服务器部署时候一定要用内网172. .开头的,外部访问设为外网ip
不然会导致Kafka写入数据的时候报错 : TImeout

4.1本地灶念docker创建topic:

4.2 本地windows 创建topic
进入本地软件路径KAFKA/BIN/WIONDOWS
创建topic

5.修改服务器的host:
一定要注意加sudo 不然会导致readonly 无法修改

在host 文件的末尾加上以下:

6.切换到工程部署的目录

7.清理redis,不然数据有残留:
7.1服务器上的redis挂载清除:
在 docker-compose.yml中注销这几行: 目的是每次启动不必记录上次没有执行完的数据.

这个是用来记录redis中假如上次指定的是1到100万块,没有执行完.下次接着执行没执行完的任务,测试时暂时关闭

7.2删除volume:

7.3 如果volume文件被占用时,先删除占用容器:

7.4 清除redis中的数据
进入redis容器中:

8.部署命令:
8.1开启docker可视化web上监控docker:

然后访问: http://39.100.48.41:9000
宿主机IP + 9000端口

8.2执行部署命令,启动服务:

9.部署时报错: yaml: line 46: did not find expected key
原因: docker-compose.yml文件中第46行 报错

解决:将所有数据对齐,不要有多余的空格.

热点内容
微信公众号怎么上传pdf 发布:2025-02-08 02:42:41 浏览:345
安卓如何查看通话总时长 发布:2025-02-08 02:27:49 浏览:578
快速dct算法 发布:2025-02-08 02:19:04 浏览:621
淘宝交易密码如何改 发布:2025-02-08 02:17:32 浏览:773
php的进阶 发布:2025-02-08 02:17:28 浏览:674
服务器关闭中或IP地址错误 发布:2025-02-08 02:16:55 浏览:478
节目脚本是什么 发布:2025-02-08 02:08:54 浏览:143
android的自定义属性 发布:2025-02-08 02:07:27 浏览:608
怎么看电脑的用户名和密码 发布:2025-02-08 02:02:48 浏览:796
vb动态数据库 发布:2025-02-08 02:01:53 浏览:112