集群部署

摘要:
myid文件的内容只有一行,内容只能是1-255之间的数字。此编号也是上述server.id中的id。这意味着zk进程的id创建了myid文件。在三台机器上创建myid文件#mkdir/tmp/zookeeper#vi/tmp/zookeeper/myid文件。文件中的数字是zoo.cfg的指定值,第二台机器是2。第三台机器关闭三台机器的防火墙,启动服务#systemctlstopfirewalld启动zookeeper服务#cdzookeeper-3.44.14/bin#/zkServer.shstart查看启动状态#/zkServer.shtatus这两台机器是追随者,其中一台是Kafka集群部署的领导者Kafka服务依赖于zookeeper服务。
ZooKeeper和Kafka集群部署

ZooKeeper集群部署

准备三台机器搭建集群,所有命令都在三台机器上运行

基础环境配置

主机名配置

# hostnamectl set-hostname zookeeper1

# hostnamectl set-hostname zookeeper2

# hostnamectl set-hostname zookeeper3

# bash    重启生效

配置文件

三台机器修改

vi /etc/hosts

集群部署第1张

搭建集群

安装环境

三台机器安装JDK环境

# yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

查看java版本

# java -version

集群部署第2张

解压软件包 

将zookeeper压缩包上传到三台机器的/root目录,进行解压

# tar -zxvf zookeeper-3.4.14.tar.gz

修改配置文件

修改三台机器的配置文件

# cd zookeeper-3.4.14/conf 

# mv zoo_sample.cfg zoo.cfg

在文件最后加入三行

# vi zoo.cfg

集群部署第3张

initLimit:ZooKeeper集群模式下包含多个zk进程,其中一个进程为leader,余下的进程为follower。当follower最初与leader建立连接时,它们之间会传输相当多的数据,尤其是follower的数据落后leader很多。initLimit配置follower与leader之间建立连接后进行同步的最长时间

syncLimit:配置follower和leader之间发送消息,请求和应答的最大时间长度

tickTime:tickTime则是上述两个超时配置的基本单位,例如对于initLimit,其配置值为5,说明其超时时间为 2000ms * 5 = 10秒

server.id=host:port1:port2:其中id为一个数字,表示zk进程的id,这个id也是dataDir目录下myid文件的内容。host是该zk进程所在的IP地址,port1表示follower和leader交换消息所使用的端口,port2表示选举leader所使用的端口

dataDir:其配置的含义跟单机模式下的含义类似,不同的是集群模式下还有一个myid文件。myid文件的内容只有一行,且内容只能为1 - 255之间的数字,这个数字亦即上面介绍server.id中的id,表示zk进程的id

创建myid文件

在三台机器上创建myid文件

# mkdir /tmp/zookeeper

# vi /tmp/zookeeper/myid

文件里的数字为zoo.cfg的指定值,第二台机器为2,第三台为3

集群部署第4张

启动服务

关闭三台机器的防火墙

# systemctl stop firewalld

启动zookeeper服务

# cd zookeeper-3.4.14/bin 

# ./zkServer.sh start

查看启动状态

# ./zkServer.sh status

集群部署第5张

两台机器为follower,一台为leader

集群部署第6张

Kafka集群部署 

kafka服务依赖于zookeeper服务。所以用搭建过zookeeper集群的三台机器进行构建kafka集群。所有命令都在三台机器上运行

搭建集群

解压软件包

将kafka压缩包上传到三台机器的/root目录,进行解压

# tar -zxvf kafka_2.11-1.1.1.tgz

修改配置文件

在三台机器上修改配置文件

# cd kafka_2.11-1.1.1/config

# vi server.properties

将配置文件中以下两行注释掉(在文本前加#)

#broker.id=0

#zookeeper.connect=localhost:2181

在文件底部添加配置

第一台机器

集群部署第7张

第二台机器

集群部署第8张

第三台机器

集群部署第9张

broker.id:每台机器不能一样

zookeeper.connect:有3台ZooKeeper服务器

listeners:在配置集群的时候,必须设置,不然以后的操作会报找不到leader的错误。

启动服务

在三台机器上启动服务

# cd kafka_2.11-1.1.1/bin

# ./kafka-server-start.sh -daemon ../config/server.properties

查看服务

# jps

第一台机器

集群部署第10张

第二台机器

集群部署第11张

第三台机器

集群部署第12张

测试服务 

# cd kafka_2.11-1.1.1/bin

在第一台机器创建topic命令

./kafka-topics.sh --create --zookeeper 192.168.37.12:2181 --replication-factor 1 --partitions 1 --topic test

成功输出“Created topic "test"

集群部署第13张

在第二台和第三台机器分别测试查看topic

# ./kafka-topics.sh --list --zookeeper 192.168.37.13:2181

集群部署第14张

# ./kafka-topics.sh --list --zookeeper 192.168.37.14:2181

集群部署第15张

成功输出test

免责声明:文章转载自《集群部署》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇框架基础——全面解析Java注解laravel 运行报错 No application encryption key has been specified.下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Consul Windows集群搭建ACL Token验证

前言: 由于网关将使用负载均衡进行解压,搭建多个服务器站点,所有学习了Consul服务发现,分享下自己在搭建中所遇到的问题 以及过程分享 前期准备: 由于本人公司电脑硬件硬盘比较差 ,只准备了两台机器 机器Ip 及端口 端口号 客户端类型 节点/服务名称 192.168.1.78 8500 Sever c1(Leader) 192.168.1....

LVS简介

负载均衡LVS(Linux Virtual Server)... 1 第1章 LVS负载均衡集群简介... 1 1.1 为什么要学LVS. 1 1.2 LVS网站资料:... 1 1.3 LVS内核模块ip_vs介绍... 1 第2章 LVS-DR直接路由模式... 2 2.1 DR直接路由模式说明... 2 2.1.1 DR-原理图片...

weblogic的集群与配置图文方法

一、Weblogic的集群 还记得我们在第五天教程中讲到的关于Tomcat的集群吗? 两个tomcat做node即tomcat1, tomcat2,使用Apache HttpServer做请求派发。 现在看看WebLogic的集群吧,其实也差不多。 区别在于: Tomcat的集群的实现为两个物理上不同的tomcat,分别就是两个node,没有总控端,...

kubernetes之kubeadm 安装kubernetes 高可用集群

1. 架构信息 系统版本:CentOS 7.6内核:3.10.0-957.el7.x86_64 Kubernetes: v1.14.1Docker-ce: 18.09.5推荐硬件配置:4核8G Keepalived保证apiserever服务器的IP高可用 Haproxy实现apiserver的负载均衡 2. 节点信息 目前测试为 6 台虚拟机,etcd...

【原创】从4个9到5个9可用性调优-总章

适用场景&适读对象场景关键词:互联网 分布式 业务集群 qps高 扛量 高可用 涉及内容:缓存调优 GC调优 隔离 上下游防护 运维优化 适读对象:资深业务开发同学,团队leader Part1.背景 之前年底线上用户端工程出了一次可用性故障,导致用户进app首页白屏,系统不可用。 具体原因是:【redis单点大热key叠加pipeline导致...

Docker最全教程——从理论到实战(六)

Docker最全教程——从理论到实战(六) 托管到腾讯云容器服务托管到腾讯云容器服务,我们的公众号“magiccodes”已经发布了相关的录屏教程,大家可以结合本篇教程一起查阅。   自建还是托管? 在开始之前,我们先来讨论一个问题——是自建容器服务还是托管到云容器服务? 这里笔者建议大家托管到云容器服务。对于中小团队来说,很多情况下,团队中的运维人员是缺...