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解压好配置后的文件夹,命名为

在对应的文件下下面修改zoo.cfg的监听端口地址

比如:

第一个zookeeper-3.4.6程序 修改zoo.cfg 配置文件

clientPort=2181

第二个zookeeper-3.4.6-2程序 修改zoo.cfg 配置文件

clientPort=2182

第三个zookeeper-3.4.6-2程序 修改zoo.cfg 配置文件

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 

不同客户端能接收到消息,说明配置成功

时间: 2024-08-07 21:51:43

kafka集群搭建(windows环境下)的相关文章

Linux下kafka集群搭建过程记录

环境准备 zookeeper集群环境kafka是依赖于zookeeper注册中心的一款分布式消息对列,所以需要有zookeeper单机或者集群环境. 三台服务器: 172.16.18.198 k8s-n1 172.16.18.199 k8s-n2 172.16.18.200 k8s-n3 下载kafka安装包 http://kafka.apache.org/downloads 中下载,目前最新版本的kafka已经到2.2.0,我这里之前下载的是kafka_2.11-2.2.0.tgz. 安装ka

KAFKA集群搭建

一.简介 Kafka是Apache下的一个子项目,是一个高性能跨语言分布式发布/订阅消息队列系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cloudera.Apache Storm.Spark都支持与Kafka集成.   Kafka适合做什么? 官方文档介绍,它通常被使用在两大类应用中: 搭建实时数据流管道,在系统或应用之间可靠的获取数据 搭建对数据流进行转换或相应的实时流应用程序.   为了了解Kafka具体如何实现这些功能, 首先理解几个概

kafka学习(三)-kafka集群搭建

kafka集群搭建 下面简单的介绍一下kafka的集群搭建,单个kafka的安装更简单,下面以集群搭建为例子. 我们设置并部署有三个节点的 kafka 集合体,必须在每个节点上遵循下面的步骤来启动 kafka 服务器,kafka集群需要依赖zookeeper集群,上一篇已经说道了zookeeper的搭建,方法请参考:http://www.cnblogs.com/chushiyaoyue/p/5615267.html 1.环境准备 测试服务器(2n+1)奇数台 192.168.181.128 ce

Kafka【第一篇】Kafka集群搭建

Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户的搜索关键词进行统计,分析出当前的流行趋势 有些数据,存储数据库浪费,直接存储硬盘效率又低 这些场景都有一个共同点: 数据是又上游模块产生,上游模块,使用上游模块的数据计算.统计.分析,这个时候就可以使用消息系统,尤其是分布式消息系统! 2.Kafka的定义 What is Kafka:它是一个分布

消息队列之kafka(集群搭建)

1.kafka集群搭建   kafka安装包下载地址: 官网网址:http://kafka.apache.org/quickstart 中文官网:http://kafka.apachecn.org/quickstart.html 在 windows 平台,从官网下载:http://mirrors.hust.edu.cn/apache/kafka/1.1.0/ 在 centos 平台:wgethttp://mirrors.hust.edu.cn/apache/kafka/1.1.0/kafka_2

kafka集群搭建和使用Java写kafka生产者消费者

 kafka集群搭建 Java代码   1.zookeeper集群  搭建在110, 111,112 2.kafka使用3个节点110, 111,112 修改配置文件config/server.properties broker.id=110 host.name=192.168.1.110 log.dirs=/usr/local/kafka_2.10-0.8.2.0/logs 复制到其他两个节点,然后修改对应节点上的config/server.pro 3.启动,在三个节点分别执行 bin/kaf

[Golang] kafka集群搭建和golang版生产者和消费者

一.kafka集群搭建 至于kafka是什么我都不多做介绍了,网上写的已经非常详尽了. 1. 下载zookeeper  https://zookeeper.apache.org/releases.html 2. 下载kafka http://kafka.apache.org/downloads 3. 启动zookeeper集群(我的示例是3台机器,后面的kafka也一样,这里就以1台代指3台,当然你也可以只开1台) 1)配置zookeeper. 修改复制一份 zookeeper-3.4.13/c

利用Redis实现集群或开发环境下SnowFlake自动配置机器号

前言: SnowFlake 雪花ID 算法是推特公司推出的著名分布式ID生成算法.利用预先分配好的机器ID,工作区ID,机器时间可以生成全局唯一的随时间趋势递增的Long类型ID.长度在17-19位.随着时间的增长而递增,在MySQL数据库中,InnoDB存储引擎可以更快的插入递增的主键.而不像UUID那样因为写入是乱序的,InnoDB不得不频繁的做页分裂操作,耗时且容易产生碎片. 对于SnowFlake 的原理介绍,可以参考该文章:理解分布式id生成算法SnowFlake 理解了雪花的基本原理

zookeeper+KAFKA 集群搭建

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名服务.分布式同步.集群管理等. 因为Kafka集群是把状态信息保存在Zookeeper中的,并且Kafka的动态扩容是通过Zookeeper来实现的,所以需要优先搭建Zookeerper集群,建立分布式状态管理.开始准备环境,搭建集群: zookeeper是基于Java环境开发