windows安装kafka

1.安装JDK,并配置环境变量

跳转连接

2.安装Zookeeper

2.1Zookeeper介绍:

提到Zookeeper,不得不先聊聊分布式协调技术

2.1.1什么是分布式协调技术

  分布式协调技术 主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果。

  那么怎么对这些进程进行调度呢?

  这时候我们就需要一个协调器,来让他们有序的来访问这个资源。这个协调器就是我们经常提到的那个锁。通过这个锁机制,我们就能保证了分布式系统中多个进程能够有序的访问该临界资源。那么我们把这个分布式环境下的这个锁叫作分布式锁。但是因为其运行所在的环境存在网络延迟等不可靠因素的,导致对数据的处理存在许多困难。目前处理分布式协调技术比较好的有Chubby(Google产品,收费)和Zookeeper(Apache产品,免费)。

2.1.2什么是Zookeeper

  ZooKeeper是一种为分布式应用所设计的高可用、高性能且一致的开源协调服务,它提供了一项基本服务:分布式锁服务。由于ZooKeeper的开源特性,后来我们的开发者在分布式锁的基础上,摸索了出了其他的使用方法:配置维护、组服务、分布式消息队列、分布式通知/协调等。

  ZooKeeper性能上的特点决定了它能够用在大型的、分布式的系统当中。从可靠性方面来说,它并不会因为一个节点的错误而崩溃。除此之外,它严格的序列访问控制意味着复杂的控制原语可以应用在客户端上。ZooKeeper在一致性、可用性、容错性的保证,也是ZooKeeper的成功之处。

2.1.3Zookeeper特性

  1)、全局数据一致:每个server保存一份相同的数据副本,client无论连接到哪个server,展示的数据都是一致性的,当客户端操作一个节点的文件时,其他两个节点会随之更新,这样保证了全局数据的一致性。

  2)、可靠性:如果消息被其中一台服务接受,那么将被所有的服务器接受。

  3)、顺序性:包括全局有序和偏序两种:全局有序是指如果在一台服务器上消息a在消息b前发布,则在所有Server上消息a都将在消息b前被发布;偏序是指如果一个消息b在消息a后被同一个发送者发布,a必将排在b前面。

  4)、数据更新原子性:一次数据更新要么成功,要么失败。

摘取地址

2.2安装

2.2.1 下载安装文件: http://zookeeper.apache.org/releases.html
2.2.2 解压文件 
2.2.3 打开zookeeper-3.4.13\conf,把zoo_sample.cfg重命名成zoo.cfg
2.2.4 从文本编辑器里打开zoo.cfg
2.2.5 把dataDir的值改成“./zookeeper-3.4.13/data”
2.2.6 添加如下系统变量:
  • ZOOKEEPER_HOME: C:\Users\localadmin\CODE\zookeeper-3.4.13 (zookeeper目录)
  • Path: 在现有的值后面添加 ";%ZOOKEEPER_HOME%\bin;"

2.2.7 运行Zookeeper: 打开cmd然后执行 zkserver

遇到问题

zookeeper启动:文件名、目录名或卷标语法不正确

 解决:

 

 把Server.cmd中的%JAVA%修改为Java

摘取地址

3. 安装并运行KAFKA

3.1 下载安装文件: http://kafka.apache.org/downloads.html
3.2 解压文件
3.3 打开kafka_2.11-2.0.0\config
3.4 从文本编辑器里打开 server.properties
3.5 把 log.dirs的值改成 “./logs”
3.6 打开cmd
3.7 进入kafka文件目录: cd C:\Users\localadmin\CODE\kafka_2.11-2.0.0(kafka目录)
3.8 输入并执行:  .\bin\windows\kafka-server-start.bat .\config\server.properties

4. 创建TOPICS

4.1 打开cmd 并进入cd C:\Users\localadmin\CODE\kafka_2.11-2.0.0\bin\windows
4.2 创建一个topic: kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
遇到问题

Exception in thread "main" joptsimple.UnrecognizedOptionException: zookeeper is not a recognized option
at joptsimple.OptionException.unrecognizedOption(OptionException.java:108)
at joptsimple.OptionParser.handleLongOptionToken(OptionParser.java:510)
at joptsimple.OptionParserState$2.handleArgument(OptionParserState.java:56)
at joptsimple.OptionParser.parse(OptionParser.java:396)
at kafka.admin.TopicCommand$TopicCommandOptions.<init>(TopicCommand.scala:517)
at kafka.admin.TopicCommand$.main(TopicCommand.scala:47)
at kafka.admin.TopicCommand.main(TopicCommand.scala)

解决:

kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

替换为

kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test

摘取地址

5. 打开一个PRODUCER:

cd C:\Users\localadmin\CODE\kafka_2.11-2.0.0\bin\windows
kafka-console-producer.bat --broker-list localhost:9092 --topic test

6. 打开一个CONSUMER:

cd C:\Users\localadmin\CODE\kafka_2.11-2.0.0\bin\windows
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning

7. 测试:

posted @   精神病人王大夫  阅读(222)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示