问题描述

查看了 “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服务,并且通过本地以及远程验证 发送+消费 消息的更多相关文章

  1. Windows中搭建ftp服务器

    使用工具Quick Easy FTP Server Windows中搭建FTP服务器有什么用呢? 确实没有用,直到有一次,我在VM中安装了Linux虚拟机,但是文件怎么也上传不到这个虚拟机中. 然后用 ...

  2. 在server 2003中搭建域服务(Http NTLM 代理)

    在server 2003中搭建域服务(Http NTLM 代理) 在windows server 2003 X64中搭建域服务的操作. 可参考百度经验:http://www.cnblogs.com/z ...

  3. Windows上搭建远程访问服务

    Windows上搭建远程访问服务 转自:https://blog.51cto.com/13871378/2153308?source=dra 概述:允许客户机通过拨号连接或虚拟专用网连接到公司局域网, ...

  4. (转)Windows上搭建Kafka运行环境

    转自:<Windows上搭建Kafka运行环境> 完整解决方案请参考: Setting Up and Running Apache Kafka on Windows OS   在环境搭建过 ...

  5. [转]Windows上搭建Kafka运行环境

    [转]http://www.cnblogs.com/alvingofast/p/kafka_deployment_on_windows.html Windows上搭建Kafka运行环境   完整解决方 ...

  6. windows环境搭建dubbo服务

    windows环境搭建dubbo服务 1:首先需要下载dubbo的注册中心 zookeeper zookeeper注册中心下载地址链接:http://mirror.bit.edu.cn/apache/ ...

  7. centos7中搭建ftp服务

    博客搬家: centos7中搭建ftp服务 最近想和同学共享一些文件资源,于是在实验室服务器上搭建个ftp服务,本博客记录一下配置的流程.过程基本是参照别人的方法来做的,博客也是在别人博客基础上修改的 ...

  8. Windows中搭建已存在的Octopress环境

    // 当我们需要在不同的电脑上来对同一个Octopress博客进行维护的时候就需要针对已存在的Octopress来设置环境了, 安装相应的软件 Git:http://msysgit.googlecod ...

  9. Windows上搭建Kafka运行环境

    完整解决方案请参考: Setting Up and Running Apache Kafka on Windows OS   在环境搭建过程中遇到两个问题,在这里先列出来,以方便查询: 1. \Jav ...

随机推荐

  1. 一个Python中优雅的数据分块方法

    背景 看到这个标题你可能想一个分块能有什么难度?还值得细说吗,最近确实遇到一个有意思的分块函数,写法比较巧妙优雅,所以写一个分享. 日前在做需求过程中有一个对大量数据分块处理的场景,具体来说就是几十万 ...

  2. python二分法、牛顿法求根

    二分法求根 思路:对于一个连续函数,左值f(a)*右值f(b)如果<0,那么在这个区间内[a,b]必存在一个c使得f(c)=0 那么思路便是取中间点,分成两段区间,然后对这两段区间分别再比较,跳 ...

  3. Spring事务源码解读

    一.Spring事务使用 1.通过maven方式引入jar包 <dependency> <groupId>com.alibaba</groupId> <art ...

  4. 好客租房45-react组件基础综合案例-6边界问题

    边界问题 //导入react import React from 'react' import ReactDOM from 'react-dom' //导入组件 // 约定1:类组件必须以大写字母开头 ...

  5. 141_Power Query之获取钉钉审批流自动刷新Power BI报告

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 钉钉办公给很多企业带来了很多方便,比如审批流线上化,通用化.线上化填写后,数据自动获取又是一个硬伤了,虽然数据可 ...

  6. python之模块(hashlib、logging)

    hashlib模块 加密的概念 加密,是以某种特殊的算法改变原有的数据,当其他人获得数据时,也无法了解数据的内容.简单的来说,就是将明文(人看得懂)数据通过一些手段变成密文数据(人看不懂),密文数据的 ...

  7. Sass预处理器

    CSS预处理器 less,sass和stylus sass:较早,缩进风格 scss:完全兼容css3,使用大括号 编写css的编程语言,引入变量,函数,重复代码等功能,如果编译成css文件 Sass ...

  8. 目标检测复习之Anchor Free系列

    目标检测之Anchor Free系列 CenterNet(Object as point) 见之前的过的博客 CenterNet笔记 YOLOX 见之前目标检测复习之YOLO系列总结 YOLOX笔记 ...

  9. SQL语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别

    先上代码: declare @tb table (name varchar(10),sex int) declare @tb2 table (name varchar(10),age int) ins ...

  10. 浏览器上写代码,4核8G微软服务器免费用,Codespaces真香

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 一图胜千言 先上图,下面是欣宸在自己的iPad Pro ...