当前位置: 首页 > news >正文

最牛的html5网站建设企业官网首页设计

最牛的html5网站建设,企业官网首页设计,常州网站建设哪家便宜,黄陂区建设招标网站目录 一、安装Docker及可视化工具 二、单节点部署 1、创建挂载目录 2、运行Kafka容器 3、Compose运行Kafka容器 4、查看Kafka运行状态 三、集群部署 四、部署可视化工具 1、创建挂载目录 2、运行Kafka-ui容器 3、Compose运行Kafka-ui容器 4、查看Kafka-ui运行状态 …

目录

一、安装Docker及可视化工具

二、单节点部署

1、创建挂载目录

2、运行Kafka容器

3、Compose运行Kafka容器

4、查看Kafka运行状态

三、集群部署

四、部署可视化工具

1、创建挂载目录

2、运行Kafka-ui容器

3、Compose运行Kafka-ui容器

4、查看Kafka-ui运行状态


在Kafka2.8版本之前,Kafka是强依赖于Zookeeper中间件的,这本身就很不合理,中间件依赖另一个中间件,搭建起来实在麻烦。所幸Kafka2.8之后推出了KRaft模式,即抛弃Zookeeper由Kafka节点自己做Controller来选举Leader。本篇文章内容就是介绍如何在Docker中搭建Kafka KRaft环境。

一、安装Docker及可视化工具

Docker及可视化工具的安装可参考:Ubuntu上安装 Docker及可视化管理工具

二、单节点部署

在进行单节点部署并以KRaft模式运行时,该节点通常是混合节点的类型

1、创建挂载目录

# 创建宿主机kafka挂载目录
sudo mkdir -p /data/docker/kafka

2、运行Kafka容器

# 拉取镜像
sudo docker pull apache/kafka:3.9.0# 运行容器
sudo docker run --privileged=true \
--net=bridge \
-d --name=kafka \
-v /data/docker/kafka/data:/var/lib/kafka/data \
-v /data/docker/kafka/config:/mnt/shared/config \
-v /data/docker/kafka/secrets:/etc/kafka/secrets \
-p 9092:9092 -p 9093:9093 \
-e LANG=C.UTF-8 \
-e KAFKA_NODE_ID=1 \
-e CLUSTER_ID=kafka-cluster \
-e KAFKA_PROCESS_ROLES=broker,controller \
-e KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT \
-e KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER \
-e KAFKA_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.3.9:9092 \
-e KAFKA_CONTROLLER_QUORUM_VOTERS=1@localhost:9093 \
apache/kafka:3.9.0

参数解析如下:

参数参数说明
docker run运行 Docker 容器
-d容器将在后台运行,而不是占用当前的终端会话
--privileged=trueDocker会赋予容器几乎与宿主机相同的权限
--net=bridge网络模式配置,默认是bridge,bridge表示使用容器内部配置网络
--name kafka给容器命名为 kafka,以便于管理和引用该容器
-p 9092:9092 -p 9093:9093映射 kafka 的客户端通信端口和控制器端口
-e KAFKA_NODE_ID=1节点ID,用于标识每个集群中的节点,需要是不小于1的整数,同一个集群中的节点ID不可重复
-e CLUSTER_ID=kafka-cluster集群ID,可以自定义任何字符串作为集群ID,同一个集群中所有节点的集群ID必须配置为一样
-e KAFKA_PROCESS_ROLES=broker,controller节点类型,broker,controller表示该节点是混合节点,通常单机部署时需要配置为混合节点

-e KAFKA_INTER_BROKER_LISTENER_NAME=

PLAINTEXT

Kafka的Broker地址前缀名称,固定为PLAINTEXT即可

-e KAFKA_CONTROLLER_LISTENER_NAMES=

CONTROLLER

Kafka的Controller地址前缀名称,固定为CONTROLLER即可

-e KAFKA_LISTENERS=

PLAINTEXT://:9092,CONTROLLER://:9093

表示Kafka要监听哪些端口,PLAINTEXT://:9092,CONTROLLER://:9093表示本节点作为混合节点,监听本机所有可用网卡的9092和9093端口,其中9092作为客户端通信端口,9093作为控制器端口

-e KAFKA_ADVERTISED_LISTENERS=

PLAINTEXT://192.168.3.9:9092

配置Kafka的外网地址,需要是PLAINTEXT://外网地址:端口的形式,当客户端连接Kafka服务端时,Kafka会将这个外网地址广播给客户端,然后客户端再通过这个外网地址连接,除此之外集群之间交换数据时也是通过这个配置项得到集群中每个节点的地址的,这样集群中节点才能进行交互。需要修改为对应的Kafka的外网地址。

-e KAFKA_CONTROLLER_QUORUM_VOTERS=

1@localhost:9093

投票节点列表,通常配置为集群中所有的Controller节点,格式为节点id@节点外网地址:节点Controller端口,多个节点使用逗号,隔开,由于是混合节点,因此配置自己就行了
-v /data/docker/kafka/data:/var/lib/kafka/data持久化数据文件夹,如果运行出现问题可以清空该数据卷文件重启再试
-v /data/docker/kafka/config:/mnt/shared/config持久化配置文件目录
-v /data/docker/kafka/secrets:/etc/kafka/secrets持久化秘钥相关文件夹

容器运行参数详解参考:Docker容器运行常用参数详解-CSDN博客 

3、Compose运行Kafka容器

创建docker-compose.yml文件

sudo touch /data/docker/kafka/docker-compose.yml

文件内容如下:

version: '3'services:kafka:image: apache/kafka:3.9.0container_name: kafkaports:- "9092:9092"- "9093:9093"environment:- LANG=C.UTF-8- KAFKA_NODE_ID=1- CLUSTER_ID=kafka-cluster- KAFKA_PROCESS_ROLES=broker,controller- KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT- KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER- KAFKA_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.3.9:9092- KAFKA_CONTROLLER_QUORUM_VOTERS=1@localhost:9093volumes:- /data/docker/kafka/data:/var/lib/kafka/data- /data/docker/kafka/config:/mnt/shared/config- /data/docker/kafka/secrets:/etc/kafka/secretsprivileged: truenetwork_mode: "bridge"

运行容器

#-f:调用文件,-d:开启守护进程
sudo docker compose -f /data/docker/kafka/docker-compose.yml up -d

4、查看Kafka运行状态

三、集群部署

采用Broker + Controller集群,这是推荐的生产环境的集群部署方式,集群中不存在混合节点,每个节点要么是Broker类型,要么是Controller类型。

通过下列命令在服务器上部署:

# 定义域名
# 这是fish shell的变量定义语法
# 使用bash请替换为:kafka_host="192.168.3.9"
set kafka_host "192.168.3.9"# 节点1-Controller
sudo docker run -id --privileged=true \--net=bridge --name=kafka-1 \-p 10001:9093 \-v /data/docker/kafka-1/config:/mnt/shared/config \-v /data/docker/kafka-1/data:/var/lib/kafka/data \-v /data/docker/kafka-1/secrets:/etc/kafka/secrets \-e LANG=C.UTF-8 \-e KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT \-e KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER \-e CLUSTER_ID=kafka-cluster \-e KAFKA_NODE_ID=1 \-e KAFKA_PROCESS_ROLES=controller \-e KAFKA_CONTROLLER_QUORUM_VOTERS="1@$kafka_host:10001" \-e KAFKA_LISTENERS="CONTROLLER://:9093" \apache/kafka:3.9.0# 节点2-Broker
sudo docker run -id --privileged=true \--net=bridge --name=kafka-2 \-p 9002:9092 \-v /data/docker/kafka-2/config:/mnt/shared/config \-v /data/docker/kafka-2/data:/var/lib/kafka/data \-v /data/docker/kafka-2/secrets:/etc/kafka/secrets \-e LANG=C.UTF-8 \-e KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT \-e KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER \-e CLUSTER_ID=kafka-cluster \-e KAFKA_NODE_ID=2 \-e KAFKA_PROCESS_ROLES=broker \-e KAFKA_CONTROLLER_QUORUM_VOTERS="1@$kafka_host:10001" \-e KAFKA_LISTENERS="PLAINTEXT://:9092" \-e KAFKA_ADVERTISED_LISTENERS="PLAINTEXT://$kafka_host:9002" \apache/kafka:3.9.0# 节点3-Broker
sudo docker run -id --privileged=true \--net=bridge --name=kafka-3 \-p 9003:9092 \-v /data/docker/kafka-3/config:/mnt/shared/config \-v /data/docker/kafka-3/data:/var/lib/kafka/data \-v /data/docker/kafka-3/secrets:/etc/kafka/secrets \-e LANG=C.UTF-8 \-e KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT \-e KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER \-e CLUSTER_ID=kafka-cluster \-e KAFKA_NODE_ID=3 \-e KAFKA_PROCESS_ROLES=broker \-e KAFKA_CONTROLLER_QUORUM_VOTERS="1@$kafka_host:10001" \-e KAFKA_LISTENERS="PLAINTEXT://:9092" \-e KAFKA_ADVERTISED_LISTENERS="PLAINTEXT://$kafka_host:9003" \apache/kafka:3.9.0

这样,我们就部署了一个由1个Controller节点和2个Broker节点构成的集群,需要注意的是:

  • Broker节点无需暴露9093端口,Controller节点无需暴露9092端口
  • Broker节点需指定KAFKA_PROCESS_ROLES为broker,同样的Controller需要指定为controller
  • KAFKA_CONTROLLER_QUORUM_VOTERS配置只需要写集群中所有的Controller节点的地址端口列表
  • 对于KAFKA_LISTENERS配置项:Broker节点需要配置为PLAINTEXT://:9092,表示本节点作为Broker节点;Controller节点需要配置为CONTROLLER://:9093,表示本节点作为Controller节点
  • 对于KAFKA_ADVERTISED_LISTENERS配置项:Controller节点不能指定该配置;Broker节点需要指定为自己的外网地址和端口

四、部署可视化工具

在早期使用Kafka时,通常会选择Kafka Tool或Kafka Eagle进行管理。Kafka Tool是一款桌面应用程序,而Kafka Eagle则基于浏览器运行。尽管这两款工具在用户体验上表现平平,但它们基本能满足日常需求。

然而,自Kafka 3.3.1版本起,Kafka正式弃用了Zookeeper,转而采用自有的仲裁机制,即kraft模式。遗憾的是,上述两款工具似乎未能及时跟进这一更新,仍然要求用户输入Zookeeper地址才能连接,导致它们在新版本Kafka中无法正常使用。为了解决这一问题,我发现了一款轻量且易于使用的替代工具——kafka-ui,它能够更好地适配新版Kafka。

1、创建挂载目录

# 创建宿主机kafka-ui挂载目录
sudo mkdir -p /data/docker/kafka-ui/config# 创建挂载的配置文件
sudo touch /data/docker/kafka-ui/config/dynamic_config.yaml

2、运行Kafka-ui容器

# 拉取镜像
sudo docker pull provectuslabs/kafka-ui:v0.7.2# 运行容器
sudo docker run --privileged=true \
--net=bridge \
-d --name=kafka-ui \
-p 18080:8080 \
-v /data/docker/kafka-ui/config/dynamic_config.yaml:/etc/kafkaui/dynamic_config.yaml
-e KAFKA_CLUSTERS_0_NAME=kafka-cluster \
-e KAFKA_CLUSTERS_0_BOOTSTRAP_SERVERS=192.168.3.9:9092 \
-e SERVER_SERVLET_CONTEXT_PATH=/ \
-e AUTH_TYPE=LOGIN_FORM \
-e SPRING_SECURITY_USER_NAME=admin \
-e SPRING_SECURITY_USER_PASSWORD=admin \
-e TZ=Asia/Shanghai \
-e LANG=C.UTF-8 \
provectuslabs/kafka-ui:v0.7.2

参数解析如下:

参数参数说明
docker run运行 Docker 容器
-d容器将在后台运行,而不是占用当前的终端会话
--privileged=trueDocker会赋予容器几乎与宿主机相同的权限
--net=bridge网络模式配置,默认是bridge,bridge表示使用容器内部配置网络
--name kafka-ui给容器命名为 kafka-ui,以便于管理和引用该容器
-p 18080:8080映射 kafka-ui 的web端口

-v /data/docker/kafka-ui/config/dynamic_config.yaml:

/etc/kafkaui/dynamic_config.yaml

挂载配置文件,确保config/dynamic_config.yaml文件存在
-e SERVER_SERVLET_CONTEXT_PATH=/默认kafka-ui是免登录的,为了防止所有人都可以登录产生误操作问题,在docker部署的时候可以添加如下四个环境变量配置用户的登录密码。
-e AUTH_TYPE=LOGIN_FORM
-e SPRING_SECURITY_USER_NAME=admin
-e SPRING_SECURITY_USER_PASSWORD=admin
-e KAFKA_CLUSTERS_0_NAME=kafka-cluster自定义集群名称

-e KAFKA_CLUSTERS_0_BOOTSTRAP_SERVERS=

192.168.3.9:9092

集群地址,如有多个地址逗号分隔;需要修改为对应的Kafka的外网地址。

3、Compose运行Kafka-ui容器

创建docker-compose.yml文件

sudo touch /data/docker/kafka-ui/docker-compose.yml

文件内容如下:

version: '3'services:kafka:image: provectuslabs/kafka-ui:v0.7.2container_name: kafka-uiports:- "18080:8080"environment:- TZ=Asia/Shanghai- LANG=C.UTF-8- DYNAMIC_CONFIG_ENABLED=true- KAFKA_CLUSTERS_0_NAME=kafka-cluster- KAFKA_CLUSTERS_0_BOOTSTRAP_SERVERS=192.168.3.9:9092- SERVER_SERVLET_CONTEXT_PATH=/- AUTH_TYPE=LOGIN_FORM- SPRING_SECURITY_USER_NAME=admin- SPRING_SECURITY_USER_PASSWORD=adminvolumes:- /data/docker/kafka-ui/config/dynamic_config.yaml:/etc/kafkaui/dynamic_config.yamlprivileged: truenetwork_mode: "bridge"

运行容器

#-f:调用文件,-d:开启守护进程
sudo docker compose -f /data/docker/kafka-ui/docker-compose.yml up -d

4、查看Kafka-ui运行状态

http://192.168.3.9:18080/auth

账号和密码 都是admin

http://www.hkea.cn/news/81349/

相关文章:

  • 百度搜索什么关键词能搜到网站seo高效优化
  • 网站搭建分站需要多少钱互联网营销策划
  • 音乐网站的音乐怎么做seo先上排名后收费
  • 清河做网站报价seo实战培训王乃用
  • wordpress 回收站在哪个文件夹营销方式和手段
  • 垂直型电商网站如何做快速排名软件哪个好
  • 做产品推广有网站比较好的免费自助建站平台
  • 番禺网站建设公司排名百度推广页面投放
  • 沈阳做微网站百度收录刷排名
  • 网站建设与管理技术发展seo是什么意思如何实现
  • 手机游戏开发制作公司最新seo视频教程
  • 网站优化过度被k长春seo排名公司
  • wordpress移除谷歌字体seo网站推广与优化方案
  • 十大景观设计公司排名seo权重查询
  • 水友做的yyf网站十大免费引流平台
  • 东莞公司网站制作百度识图网页版 在线
  • 企业级网站内容管理解决方案网站关键词快速排名服务
  • 影视采集网站怎么做收录关键词是网站seo的核心工作
  • 开发一个网站需要多少时间百度账号免费注册
  • 化妆品网站主页设计长沙关键词优化方法
  • 南阳建网站企业百度推广优化工具
  • 怎样把自己做的网页放在网站里如何做宣传推广营销
  • 七谷网络工作室重庆优化seo
  • 东莞网站建设规范软文内容
  • 项目网站建设业务分析搜索优化的培训免费咨询
  • linux做网站服务器吗关键词上首页软件
  • 西安网站建设行业动态手机营销软件
  • 做推送的网站推荐今日新闻摘抄50字
  • 想在自己的网站做支付优化公司治理结构
  • 国内一家做国外酒店团购的网站网络推广优化是干啥的