【Azure Developer】在Azure VM (Windows) 中搭建 kafka服务,并且通过本地以及远程验证 发送+消费 消息
问题描述
查看了 “How to Install and Run Apache Kafka on Windows? ” 一文后,成功安装了Kafka服务,但是如何使用呢?如何在其他机器上连接到服务呢?如何发送消息,消费消息呢?
这些内容,文档中都没有介绍,所以本文主要是根据此文展示如何安装,如何生成Topic,如何发送消息,消费消息。 以及在Azure VM中需要修改那些配置后,才能从本地或者其他机器上连接到kafka服务。
操作步骤
第一部分:安装和运行 Apache Kafka
参考How to Install and Run Apache Kafka on Windows一文,总的包含六个步骤,这里我们使用一样的步骤。
1)在Apache Kafka下载页面,以 Binary downloads 方式下载 kafka文件。下载页面为: https://kafka.apache.org/downloads,本文下载的文件为 Scala 2.13 - kafka_2.13-3.2.0.tgz
2)解压文件到目标文件夹中(文件夹自己选择,如本文中使用 c:\lbtestfile\kafka)
3)进入Config目录,修改 zookeeper.properties 文件中的 dataDir 路径。在当前路径的基础上( C:/lbtestfile/kafka )加上 /zookeeper-data,这样完整的路径为:C:/lbtestfile/kafka/zookeeper-data
4)同样在config文件夹中,修改 server.properties 文件中的 log.dirs 内容。同样在当前路径的基础上( C:/lbtestfile/kafka )加上 /kafka-logs,这样完整的路径为:C:/lbtestfile/kafka/kafka-logs
5)以上操作已经完成了zookeeper和kafka服务的配置,现在打开一个CMD窗口,进入到kafka文件夹中,开始启动zookeeper,使用的命令如下:
.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties
6)现在打开另一个CMD窗口,同样进入Kafka文件夹中,启动Kafka服务,使用命令如下:
.\bin\windows\kafka-server-start.bat .\config\server.properties
注意:在执行 5,6步的时候,都需要安装Java运行环境,所以如果VM中没有安装Java,可以在此处下载:https://www.java.com/en/download/
以上步骤完成后,Kafka服务已经成功启动。。。
### 第5,6步执行动图:
第二部分:创建Topic,发送消息,消费消息
创建Topic命令 : .\bin\windows\kafka-topics.bat --create --topic test_topic --bootstrap-server localhost:9092
发送消息命令 : .\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test_topic
消费消息命令 : .\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test_topic --from-beginning
### 演示动画:
创建Topic命令
发送和接受消息:
第三部分:修改VM防火墙和Inbound规则,远程访问Kafka服务
当把第二部分中生产者(发送消息),消费者(消费消息) 中的localhost修改为VM IP地址后(xxx.xxx.140.73),就可以在其他机器中访问Kafka服务。但在使用中,遇见了下列问题:
1)Bootstrap broker xxx.xxx.140.73:9092 (id: -1 rack: null) 和 Connection to node -1 (/xxx.xxx.140.73:9092) could not be established.
- WARN [Producer clientId=console-producer] Bootstrap broker xxx.xxx.140.73:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
- WARN [Producer clientId=console-producer] Connection to node -1 (/xxx.xxx.140.73:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
这是因为VM的Inbound Rule中并没有配置打开从当前环境访问的9092端口,所以需要找到本机的IP地址后,然后在Azure VM 门户页面中添加Inbound Rule. 同时,也必须在VM中,关闭Windows操作系统本身的所有防火墙。
### 在Azure VM页面,添加VM inbound Security rule
### RDP到VM中,关闭所有防火墙配置
2) Producer 和 Consumer 解析 kafka服务域名失败
生产者解析 kafka 域名时候,解析到 127.0.0.2:9092,IP地址并不是VM的公共IP (本示例中的VM IP地址应为: xxx.xxx.140.73)
- WARN [Producer clientId=console-producer] Connection to node 0 (xxxxxxtest01.c2vbkl4ntjrehlqe5jmwliuhob.bx.internal.chinacloudapp.cn/127.0.0.2:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
而消费端报出的错误则能明确的指出,kafka域名无法解析.
- GroupCoordinator: xxxxxxtest01.c2vbkl4ntjrehlqe5jmwliuhob.bx.internal.chinacloudapp.cn:9092: Failed to resolve 'xxxxxxtest01.c2vbkl4ntjrehlqe5jmwliuhob.bx.internal.chinacloudapp.cn:9092': No such host is known. (after 0ms in state CONNECT, 4 identical error(s) suppressed)
要解决以上问题,非常简单。
- 修改Windows Host文件(路径为:C:\Windows\System32\drivers\etc )。在其中添加域名解析 xxx.xxx.140.73 xxxxxxtest01.c2vbkl4ntjrehlqe5jmwliuhob.bx.internal.chinacloudapp.cn
经过以上两步操作后,终于可以从其他机器中远程访问Kafka服务了。
参考文档
How to Install and Run Apache Kafka on Windows?:https://www.geeksforgeeks.org/how-to-install-and-run-apache-kafka-on-windows/
kafka安装及使用教程: https://www.cnblogs.com/freddy-cui/p/16451164.html
【END】
【Azure Developer】在Azure VM (Windows) 中搭建 kafka服务,并且通过本地以及远程验证 发送+消费 消息的更多相关文章
- Windows中搭建ftp服务器
使用工具Quick Easy FTP Server Windows中搭建FTP服务器有什么用呢? 确实没有用,直到有一次,我在VM中安装了Linux虚拟机,但是文件怎么也上传不到这个虚拟机中. 然后用 ...
- 在server 2003中搭建域服务(Http NTLM 代理)
在server 2003中搭建域服务(Http NTLM 代理) 在windows server 2003 X64中搭建域服务的操作. 可参考百度经验:http://www.cnblogs.com/z ...
- Windows上搭建远程访问服务
Windows上搭建远程访问服务 转自:https://blog.51cto.com/13871378/2153308?source=dra 概述:允许客户机通过拨号连接或虚拟专用网连接到公司局域网, ...
- (转)Windows上搭建Kafka运行环境
转自:<Windows上搭建Kafka运行环境> 完整解决方案请参考: Setting Up and Running Apache Kafka on Windows OS 在环境搭建过 ...
- [转]Windows上搭建Kafka运行环境
[转]http://www.cnblogs.com/alvingofast/p/kafka_deployment_on_windows.html Windows上搭建Kafka运行环境 完整解决方 ...
- windows环境搭建dubbo服务
windows环境搭建dubbo服务 1:首先需要下载dubbo的注册中心 zookeeper zookeeper注册中心下载地址链接:http://mirror.bit.edu.cn/apache/ ...
- centos7中搭建ftp服务
博客搬家: centos7中搭建ftp服务 最近想和同学共享一些文件资源,于是在实验室服务器上搭建个ftp服务,本博客记录一下配置的流程.过程基本是参照别人的方法来做的,博客也是在别人博客基础上修改的 ...
- Windows中搭建已存在的Octopress环境
// 当我们需要在不同的电脑上来对同一个Octopress博客进行维护的时候就需要针对已存在的Octopress来设置环境了, 安装相应的软件 Git:http://msysgit.googlecod ...
- Windows上搭建Kafka运行环境
完整解决方案请参考: Setting Up and Running Apache Kafka on Windows OS 在环境搭建过程中遇到两个问题,在这里先列出来,以方便查询: 1. \Jav ...
随机推荐
- C#/VB.NET 实现Word和ODT文档相互转换
ODT文档格式一种开放文档格式(OpenDocument Text).通常,ODT格式的文件可以使用LibreOffice Writer.MS Word或其他一些文档编辑器来打开.我们在处理文档时,可 ...
- mapboxgl 中插值表达式的应用场景
目录 一.前言 二.语法 三.对地图颜色进行拉伸渲染 1. 热力图 2. 轨迹图 2. 模型网格渲染 四.随着地图缩放对图形属性进行插值 五.interpolate的高阶用法 六.总结 一.前言 in ...
- Spring Boot 动态修改 log level
引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ...
- 配置中心Nacos(服务发现)
服务演变之路 单体应用架构 在刚开始的时候,企业的用户量.数据量规模都⽐较⼩,项⽬所有的功能模块都放在⼀个⼯程中编码.编译.打包并且部署在⼀个Tomcat容器中的架构模式就是单体应用架构,这样的架构既 ...
- redis-server.exe双击闪退
转自 https://blog.csdn.net/qq_40361770/article/details/80454248 解决方法: 1-win+R 打开命令行 2-cd至redis目录,例如 D: ...
- SAP 下拉框(选择屏幕)
一.选择屏幕下拉框. DATA: g_vrmid TYPE vrm_id, "id of value set gt_vlist TYPE vrm_values, "internal ...
- 【react】什么是fiber?fiber解决了什么问题?从源码角度深入了解fiber运行机制与diff执行
壹 ❀ 引 我在[react] 什么是虚拟dom?虚拟dom比操作原生dom要快吗?虚拟dom是如何转变成真实dom并渲染到页面的?一文中,介绍了虚拟dom的概念,以及react中虚拟dom的使用场景 ...
- AI场景存储优化:云知声超算平台基于 JuiceFS 的存储实践
云知声是一家专注于语音及语言处理的技术公司.Atlas 超级计算平台是云知声的计算底层基础架构,为云知声在 AI 各个领域(如语音.自然语言处理.视觉等)的模型迭代提供训练加速等基础计算能力.Atla ...
- nextInt和nextLine以及next方法的区别
1.nextInt() 只读取整型的数据,输入读取完之后,光标仍在当前行. 2.nextLine() 扫描到一行内容,当遇见换行符时,结束扫描.一旦输入读取完毕,该方法会将光标移到下一行开始的位置. ...
- org/apache/poi/POIXMLTypeLoader或者java.lang.NoSuchFieldError: RETURN_NULL_AND_BLANK
原因是之前我的poi和ooxml版本有点低, 解决方案 将两者版本提高,我是将两者的版本都提高到了3.15