kafka集群搭建(windows环境下)
一、简介
Kafka 是一个实现了分布式的、具有分区、以及复制的日志的一个服务。它通过一套独特的设计提供了消息系统中间件的功能。它是一种发布订阅功能的消息系统。
1、名词介绍
Message
消息,就是要发送的内容,一般包装成一个消息对象。
Topic
通俗来讲的话,就是放置“消息”的地方,也就是说消息投递的一个容器。假如把消息看作是信封的话,那么 Topic 就是一个邮箱
Partition && Log
Partition 分区,可以理解为一个逻辑上的分区,像是我们电脑的磁盘 C:, D:, E: 盘一样,
Kafka 为每个分区维护着一份日志Log文件。
Producers(生产者)
和其他消息队列一样,生产者通常都是消息的产生方。
在 Kafka 中它决定消息发送到指定Topic的哪个分区上。
Consumers(消费者)
消费者就是消息的使用者,在消费者端也有几个名词需要区分一下。
一般消息队列有两种模式的消费方式,分别是 队列模式 和 订阅模式。
队列模式:一对一,就是一个消息只能被一个消费者消费,不能重复消费。一般情况队列支持存在多个消费者,但是对于一个消息,只会有一个消费者可以消费它。
订阅模式:一对多,一个消息可能被多次消费,消息生产者将消息发布到Topic中,只要是订阅改Topic的消费者都可以消费。
二、安装zookeeper
1、简介
Kafka使用zookeeper作为其分布式协调框架,很好的将消息生产、消息存储、消息消费的过程结合在一起。同时借助zookeeper,kafka能够生产者、消费者和broker在内的所以组件在无状态的情况下,建立起生产者和消费者的订阅关系,并实现生产者与消费者的负载均衡。
2、下载zookeeper
可以到zookeeper官网下载
http://zookeeper.apache.org/releases.html
3、配置zookeeper
(1)下载解压完成后,来到conf文件夹下,有一个 zoo_sample.cfg 官方默认的配置文件。复制一份,重命名为 zoo.cfg
(2)配置,打开zoo.cfg 修改配置信息
#存储内存中数据库快照的位置,如果不设置参数,更新事务日志将被存储到默认位置。 dataDir=../zkData #日志文件的位置 dataLogDir=../zkLog #监听端口 clientPort=2181
(3)集群配置
server.1=127.0.0.1:12888:1388 server.2=127.0.0.1:12889:1389 server.3=127.0.0.1:12887:1387
格式: server.A = B:C:D
A:是一个数字,表示第几号服务器
B:服务器IP地址
C:是一个端口号,用来集群成员的信息交换,表示这个服务器与集群中的leader服务器交换信息的端口
D:是在leader挂掉时专门用来进行选举leader所用的端口
完整的配置文件如下

复制两份zookeeper解压好配置后的文件夹,命名为

clientPort=2181
clientPort=2182
clientPort=2183
创建ServerID
在配置的dataDir目录下面新建一个 myid 文件,文件内容就是对应的id号,
比如:
zookeeper-3.4.6程序 myid 文件的内容 为 1
zookeeper-3.4.6-2程序 myid 文件的内容 为 2
zookeeper-3.4.6-3程序 myid 文件的内容 为 3
我这边配置的目录是

启动zookeeper
在对应的bin目录下启动
zkServer.cmd
三、安装kafka
(1)下载
去官网 http://kafka.apache.org/下载即可 这边下载的是
https://www.apache.org/dyn/closer.cgi?path=/kafka/0.8.2.2/kafka_2.9.2-0.8.2.2.tgz
这个版本
(2)配置
解压后到config文件夹下 打开server.properties配置文件进行配置
(3)配置内容
修改或新增以下配置信息
#唯一标识
broker.id=0
#监听端口
port=9092
host.name=127.0.0.1
#消息最大大小
message.max.bytes=50485760
#配置副本数量
default.replication.factor=2
#获取的最大大小
replica.fetch.max.bytes=50485760
#队列中消息持久化存放的位置,可以多个目录,用逗号分开
log.dirs=/tmp/kafka-logs
#默认的分区数
num.partitions=2
#对应着刚刚配置的zookeeper的三个ip与端口地址
zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
(4)集群配置
复制两份解压后的文件,命名如下

修改部分配置信息
在对应的server.properties中修改
#唯一标识
broker.id=0
broker.id=1
broker.id=2
#监听端口
port=9092
port=9093
port=9094
启动对应的kafka
进入到bin/windows目录下 启动kafka并指定配置文件
kafka-server-start.bat ../../config/server.properties
启动过程中如果遇到Kafka中错误:
Unrecognized VM option ‘UseCompressedOops’ Error: Clould not create the Java Vritual Machine. Error: A fatal exception has occurres . Program will exit.
解决方案:
找到bin/windows/kafka-run-class.bat 文件,
找到112行左右
IF ["%KAFKA_JVM_PERFORMANCE_OPTS%"] EQU [""] ( set KAFKA_JVM_PERFORMANCE_OPTS=-server -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true )
删除掉 -XX:+UseCompressedOops 即可
测试集群
(1)创建一个 topic
kafka-topics.bat --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic test
(2)查看是否创建成功
kafka-topics.bat --list --zookeeper localhost:2181
(3)发送消息
kafka-console-producer.bat --broker-list localhost:9092 --topic test This is a message

(4)接收消息
kafka-console-consumer.bat --zookeeper localhost:2181 --topic test --from-beginning

不同客户端能接收到消息,说明配置成功
公众号
欢迎关注我的公众号“码上开发”,每天分享最新技术资讯。关注获取最新资源
kafka集群搭建(windows环境下)的更多相关文章
- Linux下kafka集群搭建过程记录
		环境准备 zookeeper集群环境kafka是依赖于zookeeper注册中心的一款分布式消息对列,所以需要有zookeeper单机或者集群环境. 三台服务器: 172.16.18.198 k8s- ... 
- Linux下kafka集群搭建
		环境准备 zookeeper集群环境 kafka是依赖于zookeeper注册中心的一款分布式消息对列,所以需要有zookeeper单机或者集群环境. 三台服务器: 172.16.18.198 k8s ... 
- Kafka【第一篇】Kafka集群搭建
		Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户 ... 
- kafka学习(三)-kafka集群搭建
		kafka集群搭建 下面简单的介绍一下kafka的集群搭建,单个kafka的安装更简单,下面以集群搭建为例子. 我们设置并部署有三个节点的 kafka 集合体,必须在每个节点上遵循下面的步骤来启动 k ... 
- Zookeeper + Kafka 集群搭建
		第一步:准备 1. 操作系统 CentOS-7-x86_64-Everything-1511 2. 安装包 kafka_2.12-0.10.2.0.tgz zookeeper-3.4.9.tar.gz ... 
- 消息队列kafka集群搭建
		linux系统kafka集群搭建(3个节点192.168.204.128.192.168.204.129.192.168.204.130) 本篇文章kafka集群采用外部zookeeper,没采 ... 
- 【转】kafka集群搭建
		转:http://www.cnblogs.com/luotianshuai/p/5206662.html Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否 ... 
- Kafka 集群搭建 (自用)
		Zookeeper集群搭建 1.软件环境 (3台服务器-测试环境) 192.168.56.9 192.168.56.6 192.168.56.7 1.Linux服务器一台.三台.五台.(2*n+1), ... 
- zookeeper与Kafka集群搭建及python代码测试
		Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户 ... 
- CentOS 7 Zookeeper 和 Kafka 集群搭建
		环境 CentOS 7.4 Zookeeper-3.6.1 Kafka_2.13-2.4.1 Kafka-manager-2.0.0.2 本次安装的软件全部在 /home/javateam 目录下. ... 
随机推荐
- FoxOne---一个快速高效的BS框架--数据访问(Dao)
			FoxOne---一个快速高效的BS框架--(1) FoxOne---一个快速高效的BS框架--(2) FoxOne---一个快速高效的BS框架--(3) FoxOne---一个快速高效的BS框架-- ... 
- Https系列之四:https的SSL证书在Android端基于okhttp,Retrofit的使用
			Https系列会在下面几篇文章中分别作介绍: 一:https的简单介绍及SSL证书的生成二:https的SSL证书在服务器端的部署,基于tomcat,spring boot三:让服务器同时支持http ... 
- Oculus关于Internal Error:OVR53225466报错解决方法
			安装Oculus过程中可能会出现Internal Error:OVR53225466报错提示,如附件所示: 解决方法:修改hosts文件 操作方法: (1)以管理员方式打开记事本: (2)打开C:\W ... 
- babel的使用详解
			由于es6的很多特性在旧的浏览器下支持不好,我们在使用的时候需要将其转化为es5,下面介绍babel解析器的使用 一:独立使用babel的方法 1.本地安装babel-cli npm install ... 
- Tomcat的四种基于HTTP协议的Connector性能比较
			Tomcat从5.5版本开始,支持以下四种Connector的配置分别为: <Connector port="8081" protocol="org.apache. ... 
- 实例化vue之前赋值html元素导致事件失效
			先实例化Vue对象,再操作其他对象,Vue对象声明时会渲染html容器内的所有元素, 会导致元素事件失效或dom元素重新创建,所以涉及html元素的对象都要在实例化Vue之后执行. 下面是简要的例子, ... 
- Python自学笔记-生成器(来自廖雪峰的官网Python3)
			感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. 生成器 通过列 ... 
- 学习的Python教程中的一些问题
			2017开始学习Python,在网上找了很多教程,最后看到了Vamei的教程,感觉很简单易懂,但是过程中难免有不太容易理解的问题,做一些随笔,加深记忆亦可让以后学习的同学少走一些弯路. 1 Pytho ... 
- ZOJ-3933-Team Formation【二分图最佳匹配】【KM】
			http://blog.csdn.net/loy_184548/article/details/51154195 一开始对不同组合得不同分数(mm1,mg2,gg3),想用sap来写,但是保证了 ... 
- jQuery扩展easyui.datagrid,添加数据loading遮罩效果代码
			//jquery.datagrid 扩展加载数据Loading效果 (function (){ $.extend($.fn.datagrid.methods, { //显示遮罩 loading: fu ... 
