部署Kafka集群图文详细步骤

news2024/11/28 4:49:21

1 集群规划

共三台虚拟机同处overlay网段,每台虚拟机部署一套kafka和zookeeper,kafka_manager安装其中一台虚拟机上即可。

HostnameIP addrPortListener
zk1docker-swarm分配2183:2181
zk2docker-swarm分配2184:2181
zk3docker-swarm分配2185:2181
k1docker-swarm分配内部9093:9093,外部9193:9193kafka1
k2docker-swarm分配内部9094:9094,外部9194:9194kafka2
k3docker-swarm分配内部9095:9095,外部9195:9195kafka3
kafka_manager8094:9000

2 虚拟机安装docker(之前安装过省略该步)

3 关闭SELINUX服务

找到/etc/sysconfig/selinux文件,把其中的SELINUX设置为disabled,保存文件之后重启CentOS系统。

4 更新yum程序

yum update -y

5 安装docker

yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

6 安装需要的软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

7 设置稳定的存储库

yum-config-manager --add-repo [https://download.docker.com/linux/centos/docker-ce.repo](https://download.docker.com/linux/centos/docker-ce.repo)	

8 安装最新版的 Docker Engine 和 containerd

	yum install docker-ce docker-ce-cli containerd.io

9 创建docker swarm集群(之前初始化过省略该步)

10 初始化swarm集群(管理主机上)

docker swarm init --advertise-addr <本虚拟机ip>

11 加入虚拟网段(每台从主机上)

管理主机调用初始化swarm集群的命令后会生成一段命令(如下图),将该段命令复制到每台从主机上执行。

12 查看网段信息

docker network ls

13 查看swarm集群节点信息(管理主机上)

docker node ls

14 创建虚拟共享网段(管理主机上)

docker network create -d overlay --attachable swarm_kafka

15 部署kafka集群

16 部署主机1

17 创建zookeeper1容器

docker run -d --restart always --hostname zk1 --name zk1 -p 2183:2181 -v "/root/zookeeper1/data:/data" -v "/root/zookeeper1/datalog:/datalog" -v "/root/zookeeper1/logs:/logs" -e ZOO_MY_ID=1 -e ZOO_SERVERS="server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181" --network swarm_kafka zookeeper:latest

18 创建kafka1容器

docker run -d --restart always --hostname k1 --name k1 -p 9093:9093 -p 9193:9193 -e KAFKA_BROKER_ID=1 -e KAFKA_LISTENERS="INSIDE://:9093,OUTSIDE://:9193" -e KAFKA_ADVERTISED_LISTENERS="INSIDE://<填虚拟机ip>:9093,OUTSIDE://<填虚拟机ip>:9193" -e KAFKA_LISTENER_SECURITY_PROTOCOL_MAP="INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT" -e KAFKA_INTER_BROKER_LISTENER_NAME=INSIDE -e KAFKA_ZOOKEEPER_CONNECT="zk1:2181,zk2:2181,zk3:2181" -e ALLOW_PLAINTEXT_LISTENER='yes' -e JMX_PORT=9999 -v "/root/kafka1/wurstmeister/kafka:/wurstmeister/kafka" -v "/root/kafka1/kafka:/kafka" --network swarm_kafka --link zk1 --link zk2 --link zk3 docker.io/wurstmeister/kafka

19 部署主机2

20 创建zookeeper2容器

docker run -d --restart always --hostname zk2 --name zk2 -p 2184:2181 -v "/root/zookeeper2/data:/data" -v "/root/zookeeper2/datalog:/datalog" -v "/root/zookeeper2/logs:/logs" -e ZOO_MY_ID=2 -e ZOO_SERVERS="server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181" --network swarm_kafka zookeeper:latest

21 创建kafka2容器

docker run -d --restart always --hostname k2 --name k2 -p 9094:9094 -p 9194:9194 -e KAFKA_BROKER_ID=2 -e KAFKA_LISTENERS="INSIDE://:9094,OUTSIDE://:9194" -e KAFKA_ADVERTISED_LISTENERS="INSIDE://<填虚拟机ip>:9094,OUTSIDE://<填虚拟机ip>:9194" -e KAFKA_LISTENER_SECURITY_PROTOCOL_MAP="INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT" -e KAFKA_INTER_BROKER_LISTENER_NAME=INSIDE -e KAFKA_ZOOKEEPER_CONNECT="zk1:2181,zk2:2181,zk3:2181" -e ALLOW_PLAINTEXT_LISTENER='yes' -e JMX_PORT=9999 -v "/root/kafka2/wurstmeister/kafka:/wurstmeister/kafka" -v "/root/kafka2/kafka:/kafka" --network swarm_kafka --link zk1 --link zk2 --link zk3 docker.io/wurstmeister/kafka

22 部署主机3

23 创建zookeeper3容器

docker run -d --restart always --hostname zk3--name zk3 -p 2185:2181 -v "/root/zookeeper3/data:/data" -v "/root/zookeeper3/datalog:/datalog" -v "/root/zookeeper3/logs:/logs" -e ZOO_MY_ID=3 -e ZOO_SERVERS="server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181" --network swarm_kafka zookeeper:latest

24 创建kafka3容器

docker run -d --restart always --hostname k3 --name k3 -p 9095:9095 -p 9195:9195 -e KAFKA_BROKER_ID=3 -e KAFKA_LISTENERS="INSIDE://:9095,OUTSIDE://:9195" -e KAFKA_ADVERTISED_LISTENERS="INSIDE://<填虚拟机ip>:9095,OUTSIDE://<填虚拟机ip>:9195" -e KAFKA_LISTENER_SECURITY_PROTOCOL_MAP="INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT" -e KAFKA_INTER_BROKER_LISTENER_NAME=INSIDE -e KAFKA_ZOOKEEPER_CONNECT="zk1:2181,zk2:2181,zk3:2181" -e ALLOW_PLAINTEXT_LISTENER='yes' -e JMX_PORT=9999 -v "/root/kafka3/wurstmeister/kafka:/wurstmeister/kafka" -v "/root/kafka3/kafka:/kafka" --network swarm_kafka --link zk1 --link zk2 --link zk3 docker.io/wurstmeister/kafka

25 安装kafka管理工具

docker run -d --restart always --hostname kafka-manager --name kafka-manager -p 8094:9000 -e ZK_HOSTS="zk1:2181,zk2:2181,zk3:2181" -e KAFKA_BROKERS="k1:9093,k2:9094,k3:9095" -e APPLICATION_SECRET=letmein -e KM_ARGS="-Djava.net.preferIPv4Stack=true" --network swarm_kafka --link zk1 --link zk2 --link zk3 --link k1 --link k2 --link k3 \scjtqs/kafka-manager:latest

26 配置cluster

打开kafka-manager的Windows管理界面地址:<虚拟机ip>:8094



最后点击save保存,成功配置cluster图如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1581955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用C语言函数对数组进行操作

前言 在我们了解数组和函数之后&#xff0c;我们对数组和函数进行结合&#xff0c;之后完成一些操作吧 题目描述 杰克想将函数与数组结合进行一些操作&#xff0c;以下是他想要达到的效果&#xff0c;请你帮帮他吧&#xff01; 创建一个整型数组&#xff0c;完成对数组的操作 1…

亿级表优化「TIDB 分区篇」,值得收藏

这是亿级别表优化的第二篇&#xff0c;对第一篇感兴趣的可以看看。 亿级表优化思路之SQL篇 - 掘金 写作背景 距上次写亿级别优化已经有一个多月了&#xff0c;这段时间也没闲着&#xff0c;Q1 对模型做了梳理&#xff0c;重构了这部分业务&#xff0c;主要做了下面这些优化 …

大厂面试:找出数组中第k大的数的最佳算法

一.前置条件 假如数组为a,大小为n&#xff0c;要找到数组a中第k大的数。 二.解决方案 1.使用任意一种排序算法&#xff08;例如快速排序&#xff09;将数组a进行从大到小的排序&#xff0c;则第n-k个数即为答案。 2.构造一个长度为k的数组&#xff0c;将前k个数复制过来并降序…

笔记:[dv-admin开发系列]--2.0版本环境搭建

目录 来源新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公…

基于51单片机的病床呼叫系统设计与实现Proteus仿真

地址&#xff1a;https://pan.baidu.com/s/1bybQ0wc-FNtkemkFvGotsA 提取码&#xff1a;1234 仿真图&#xff1a; 利用矩阵键盘、蜂鸣器和数码管搭建一个小型病床呼叫系统。用16个按键模拟16个病床的呼叫按钮&#xff0c;当有按键按下时&#xff0c;护士站处由蜂鸣器发出报警声…

广告投放分析

项目背景 Facebook被众多企业作为首选的广告平台之一&#xff0c;特别是在投放原生广告方面。这个平台允许根据如性别、年龄、地理位置和兴趣等多重标准来细化目标用户群。广告主能够制作专门的Facebook广告&#xff0c;并设定一个特定的“受众群体”&#xff0c;便于他们向某些…

django 4.2 自定义signal的使用方法

环境&#xff1a;win11 python3.9.2 django 4.2.11 背景&#xff1a;执行异步数据存储&#xff0c;想要使用该方法实现&#xff08;失败了&#xff09; 时间&#xff1a;20240410 说明&#xff1a;记录一下&#xff0c;避免忘记 1、创建django项目&#xff0c;并实现首页 …

vue点击上传图片并实现图片预览功能,并实现多张图片放到一个数组中进行后端请求(使用原生input)

一、将 File 对象转成 BASE64 字符串 &#xff08;FileReader&#xff09; <template><div><!-- 用来显示封面的图片 --><!-- <img src"/assets/images/cover.jpg" alt"" class"cover-img" ref"imgRef" />…

蓝桥杯嵌入式2023年第十四届省赛主观题解析

1 题目 2 代码 /* Includes ------------------------------------------------------------------*/ #include "main.h" #include "adc.h" #include "rtc.h" #include "tim.h" #include "gpio.h"/* Private includes --…

Leetcode:27.移除元素

题目要求 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出…

C语言指针—野指针、指针运算、指针与数组

野指针 指针未初始化 int main(){int *p;//没有初始化&#xff0c;就意味着没有明确的方向//一个局部变量不初始化&#xff0c;放的是随机值:0xCCCCCCCC//请注意&#xff0c;这个地址并不是我们定义的&#xff0c;是一个非法的地址*p 10;//非法访问内存了&#xff0c;这里的…

Unity面经(自整)——移动开发与Shader

Unity与Android混合开发 为什么使用Flutter构建 Flutter 是 Google 的开源工具包&#xff0c;用于从单个代码库为移动、Web、桌面和嵌入式设备构建应用程序&#xff08;一套代码跨平台构建app是它最大的优点&#xff09;&#xff0c;并且可以构建高性能、稳定和丰富UI的应用程…

Spring MVC体系结构和处理请求控制器(一)

一、MVC模式 MVC模式是指Model-View-Controller&#xff08;模型-视图-控制器&#xff09;模式&#xff0c;是开发Web应用程序时常用的一种代码分层模式MVC模式是软件工程中的一种架构模式&#xff0c;会强制行的把系统的输入、处理和输出分开&#xff0c;是系统从功能上形成M…

评论发布完整篇(react版)

此篇文章阐述评论的最新、最热之间的tab标签切换&#xff08;包括当前所在tab标签的高亮显示问题&#xff09;&#xff1b;当前评论的删除&#xff1b;除此之外还延伸了用户的评论实时发布功能。其中最新tab标签所展示的内容是根据当前评论点赞数来进行排序&#xff0c;点赞数量…

数字社会下的智慧公厕:构筑智慧城市的重要组成部分

智慧城市已经成为现代城市发展的趋势&#xff0c;而其中的数字化转型更是推动未来社会治理体系和治理能力现代化的必然要求。在智慧城市建设中&#xff0c;智慧公厕作为一种新形态的信息化公共厕所&#xff0c;扮演着重要角色。本文智慧公厕源头实力厂家广州中期科技有限公司&a…

Go gin框架(详细版)

目录 0. 为什么会有Go 1. 环境搭建 2. 单-请求&&返回-样例 3. RESTful API 3.1 首先什么是RESTful API 3.2 Gin框架支持RESTful API的开发 4. 返回前端代码 go.main index.html 5. 添加静态文件 main.go 改动的地方 index.html 改动的地方 style.css 改动…

C语言 | 字符函数和字符串函数

目录&#xff1a; 1. 字符分类函数 2. 字符转换函数 3. strlen的使用和模拟实现 4. strcpy的使用和模拟实现 5. strcat的使用和模拟实现 6. strcmp的使用和模拟实现 7. strncpy函数的使用 8. strncat函数的使用 9. strncmp函数的使用 10. strstr的使用 11. strtok函…

力扣121. 买卖股票的最佳时机

Problem: 121. 买卖股票的最佳时机 文章目录 题目描述思路复杂度Code 题目描述 思路 1.定义一个int数组max大小同prices&#xff1b;定义int变量curMax初始化为0&#xff1b; 2.从后往前遍历数组&#xff0c;若当前元素prices[i] > curMax时&#xff0c;则使将其赋值给curMa…

医院预约系统微信小程序APP前后端

医院预约系统具体功能介绍&#xff1a;展示信息、可以注册和登录&#xff0c; 预约&#xff08;包含各个科室的预约&#xff0c;可以预约每个各个医生&#xff09;&#xff0c;就诊引导包含预约的具体信息&#xff0c;包含就诊时间、就诊科室、就诊医生以及就诊人信息、和支付状…

如何注册midjourney账号

注册Midjourney账号比较简单&#xff0c;准备好上网工具&#xff0c;进入官网 Midjourney访问地址&#xff1a; https://www.midjourney.com/ 目前没有免费使用额度了&#xff0c;会员最低 10 美元/月&#xff0c;一般建议使用30美元/月的订阅方案。了解如何订阅可以查看订阅…