一、前提条件

1、部署Kafka集群搭建需要服务器至少3台,奇数台

2、Kafka的安装需要java环境,jdk1.8

3、Kafka安装包版本:https://mirror-hk.koddos.net/apache/kafka/2.7.0/kafka_2.13-2.7.0.tgz

4、3台机器增加host配置:

192.168.202.129 kafka-1.local
192.168.202.130 kafka-2.local
192.168.202.131 kafka-3.local

二、Zookeeper集群搭建

直接使用kafka自带的zookeeper建立zk集群

1、将安装包 kafka_2.13-2.7.0.tgz 上传到/opt 目录下

2、解压:tar -zxvf kafka_2.13-2.7.0.tgz

3、进入目录:cd /opt/kafka_2.13-2.7.0/

4、创建zookeeper目录:mkdir zk_kfk_data

5、进入目录:cd /opt/kafka_2.13-2.7.0/config

6、修改zookeeper.properties文件:

dataDir=/opt/kafka_2.13-2.7.0/zk_kfk_datatickTime=2000
initLimit=10
syncLimit=5server.1=kafka-1.local:2888:3888
server.2=kafka-2.local:2888:3888
server.3=kafka-3.local:2888:3888

三台机器上的zookeeper.properties文件配置相同,data.Dir 为zk的数据目录,server.1、server.2、server.3 为集群信息。

2888端口号是zookeeper服务之间通信的端口

3888端口是zookeeper与其他应用程序通信的端口。

tickTime:CS通信心跳数

Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。

tickTime以毫秒为单位。

tickTime:该参数用来定义心跳的间隔时间,zookeeper的客户端和服务端之间也有和web开发里类似的session的概念,而zookeeper里最小的session过期时间就是tickTime的两倍。

initLimit:LF初始通信时限

集群中的follower服务器(F)与leader服务器(L)之间 初始连接 时能容忍的最多心跳数(tickTime的数量)

syncLimit:LF同步通信时限

集群中的follower服务器(F)与leader服务器(L)之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)

7、创建myid文件:进入/opt/kafka_2.13-2.7.0/zk_kfk_data目录,创建myid文件,将三台服务器上的myid文件分别写入1,2,3。myid是zookeeper集群用来发现彼此的标识,必须创建,且不能相同。

8、执行启动zookeeper命令:

nohup /opt/kafka_2.13-2.7.0/bin/zookeeper-server-start.sh /opt/kafka_2.13-2.7.0/config/zookeeper.properties > /opt/kafka_2.13-2.7.0/zookeeper.log 2>&1 &

三台机器都执行启动命令,查看zookeeper的日志文件,没有报错就说明zookeeper集群启动成功了。

三、Kafka集群搭建

1、进入目录:cd /opt/kafka_2.13-2.7.0/
2、创建kafka日志数据目录:mkdir kafka-logs-1
3、进入目录:cd /opt/kafka_2.13-2.7.0/config
4、修改server.properties配置文件:

//用于区分broker,必须唯一,每台机器只需要一个broker.id
//机器A
broker.id=0
//机器B
broker.id=1
//机器C
broker.id=2//PLAINTEXT表示协议,配置本机IP地址
listeners=PLAINTEXT://kafka-1.local:9092
//PLAINTEXT表示协议,配置本机IP地址,对外公布
advertised.listeners=PLAINTEXT://kafka-2.local:9092
//配置zookeeper的地址,zookeeper集群地址以逗号隔开
zookeeper.connect=kafka-1.local:2181,kafka-2.local:2181,kafka-3.local:2181
//配置数据存放目录
log.dirs=/opt/kafka_2.13-2.7.0/kafka-logs-1

5、配置其他2台机器,注意服务器地址修改

6、 启动kafka集群:

nohup /opt/kafka_2.13-2.7.0/bin/kafka-server-start.sh /opt/kafka_2.13-2.7.0/config/server.properties > /opt/kafka_2.13-2.7.0/kafka.log 2>&1 &

三个节点均要启动;启动无报错,即搭建成功,注意:配置的时候尽量使用绑定的host,而不是直接IP

四、测试Kafka集群

//创建topic,--replication-factor指定副本个数,--partitions指定分区个数
/opt/kafka_2.13-2.7.0/bin/kafka-topics.sh --create --zookeeper kafka-1.local:2181,kafka-2.local:2181,kafka-3.local:2181 --replication-factor 1 --partitions 1 --topic test//查看所有的topic信息
/opt/kafka_2.13-2.7.0/bin/kafka-topics.sh --list --zookeeper kafka-1.local:2181//启动生产者
/opt/kafka_2.13-2.7.0/bin/kafka-console-producer.sh --broker-list kafka-1.local:9092,kafka-2.local:9092,kafka-3.local:9092 --topic test
> hello world 1
> hello world 2
> hello world 3//启动消费者
/opt/kafka_2.13-2.7.0/bin/kafka-console-consumer.sh --bootstrap-server kafka-1.local:9092,kafka-2.local:9092,kafka-3.local:9092 --topic test --from-beginning//删除topic
/opt/kafka_2.13-2.7.0/bin/kafka-topics.sh --delete --zookeeper kafka-1.local:2181 --topic test

kafka利用自带的zookeeper进行集群部署相关推荐

  1. 利用memcached实现CAS单点登录集群部署

    前言:利用memcached实现CAS单点登录集群部署 负载均衡: 将接口请求的有状态性变成无状态性.是我们在实现负载均衡时必要要解决的问题.以应用接口的session状态为例,一般解决方法都是将se ...

  2. zookeeper伪集群部署

    zookeeper 伪集群安装 Time : 20181024 环境 centos7 zookeeper-3.4.6 zookeerper安装启动 将下载好的zookeeper-3.4.6.tar通过 ...

  3. Dubbo与Zookeeper伪集群部署

    1.美图 官网:http://dubbo.apache.org/#!/docs/user/preface/background.md?lang=zh-cn 1.准备Zookeeper zookeepe ...

  4. linux solrcloud zookeeper分布式集群部署

    SolrCloud 通过 ZooKeeper 集群来进行协调,使一个索引进行分片,各个分片可以分布在不同的物理节点上,多个物理分片组成一个完成的索引 Collection.SolrCloud 自动支持 ...

  5. Zookeeper分布式集群部署

    一.官方网站下载zookeeper-3.4.5:http://www.apache.org/dyn/closer.cgi/zookeeper/ 二.将下载得到的zookeeper-3.4.5.tar. ...

  6. zookeeper centos7 集群部署

    配置描述: 服务器:CentOS Linux release 7.4.1708 (Core) * 3台 Zk版本: zookeeper-3.4.14 JDK版本:java version 1.8.0_ ...

  7. Elasitcsearch 带密码及ssl集群部署

    首先批量部署基础服务,可参照ansible-playbook脚本 install_es.yml --- - name: install elasticsearchhosts: "{{ ip ...

  8. zookeeper的单实例和伪集群部署

    原文链接: http://gudaoyufu.com/?p=1395 zookeeper工作方式 ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现 ...

  9. zookeeper+kafka集群部署+storm集群

    zookeeper+kafka集群部署+storm集群 一.环境安装前准备: 准备三台机器 操作系统:centos6.8 jdk:jdk-8u111-linux-x64.gz zookeeper:zo ...

最新文章

  1. 给大家提供一些面试常问的问题
  2. JQuery------鼠标双击时,不选中div里面的文字
  3. windows下统一mysql编码_mysql5.7 windows7编码统一utf-8
  4. QtCreator下使用c++标准输入cin输出cout没有阻塞等待输入
  5. 基于JAVA+SpringBoot+Mybatis+MYSQL的仿天猫商城
  6. 什么是DevSecOps?
  7. 日照百分率建模及模拟
  8. 用简单直白的方式讲解A星寻路算法原理
  9. CSS3魔法堂:说说Multi-column Layout
  10. kaggle数据集下载
  11. 考研复试常见问题(数据库系统概论篇)
  12. 崂山道士、Harry Potter和人脸识别
  13. html如何将搜索图标放入搜索框中
  14. java文件在浏览器下载和预览
  15. 计算机屏幕黑屏让程序继续允许,电脑软件让对方黑屏
  16. 四足机器人|机器狗|仿生机器人|多足机器人|MATLAB动画仿真|Simulink动画仿真
  17. 3第三课:区块链的激励机制
  18. 卷积核——Roberts、Prewitt、Sobel、Lapacian、DoG、LoG算子
  19. 吴佳怡最新街拍曝光  潮酷girl演绎初秋时尚
  20. 多方寻路RFID酝酿突围

热门文章

  1. 红帽8RHCSA考试真题,今天300分已过(2022最新版)
  2. C语言一维数组的定义与常见用法
  3. 【算法Algorithm】计数(Count)排序
  4. 安装pocoui报错
  5. java对接支付宝支付
  6. 在datadog中对某个主机上的进程进行监控
  7. 终于放假咯~寒假规划
  8. 第三集 怪物学院 第二十章
  9. java switch finally_java switch语句详解
  10. PL/0 语言简介、PL/0 文法