常用中间件集群部署

redis—cluster集群部署

安装redis(多节点同步)

#拉取软件包 到服务器中
wget https://download.redis.io/releases/redis-6.2.1.tar.gz

#创建服务目录
mkdir /data/tysf-test/redis/

#解压到规划目录中
tar -zxvf redis-6.2.1.tar.gz -C /data/tysf-test/redis/

#进入解压目录进行编译
make && make install

修改配置文件(三台redis端口不要冲突,将配置文件复制给另外几台,看你是6节点部署还是3节点一个道理)

port  16379                  #端口16379        
bind 本机ip                  #默认ip为172.20.0.2/3/4/5/6/7需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize    yes                        #redis后台运行
pidfile  /var/run/redis_16379.pid       #pidfile #文件对应16379
cluster-enabled  yes                    #开启集群  把注释#去掉
cluster-config-file  nodes_7000.conf    #集群的配置  配置文件首次启动自动生成
cluster-node-timeout  15000             #请求超时  默认15秒,可自行设置
appendonly  yes                         #aof日志开启  有需要就开启,它会每次写操作都记录一条日志 
masterauth '86a1b907d54bf7010394bf316e183e67'
requirepass '86a1b907d54bf7010394bf316e183e67'  #设置密码

启动redis

redis-server /usr/local/redis_cluster/redis.conf

创建集群 说明:《0,1 这是对应你集群的模式是1主配一从还是都是主,根据实际情况来》

redis-cli --cluster create   172.17.9.48:16379 172.17.9.211:16380 172.17.9.91:16381   --cluster-replicas 《0,1》 -a "Rpb7H7wS076XPqBF"

Kafka—Kraft模式 集群部署

前言:

kafka有两种模式 可以自己去了解一下这里就不多说了

集群规划:

一般模式下,元数据在 zookeeper 中,运行时动态选举 controller,由controller 进行 Kafka 集群管理。kraft 模式架构(实验性)下,不再依赖 zookeeper 集群,而是用三台 controller 节点代替 zookeeper,元数据保存在 controller 中,由 controller 直接进行 Kafka 集群管理。

好处有以下几个:

  • Kafka 不再依赖外部框架,而是能够独立运行

  • controller 管理集群时,不再需要从 zookeeper 中先读取数据,集群性能上升

  • 由于不依赖 zookeeper,集群扩展时不再受到 zookeeper 读写能力限制

  • controller 不再动态选举,而是由配置文件规定。可以有针对性的加强controller 节点的配置,而不是像以前一样对随机 controller 节点的高负载束手无策。

下载二进制安装包:https://kafka.apache.org/downloads

copy到三台节点上后解压:

mkdir /data/【项目名称-环境】/kafka
tar -zxvf /home/kafka_2.13-3.6.1.tgz -C /data/【项目名称-环境】/kafka

调整配置文件:Kraft模式的配置文件在config目录的kraft子目录下

cd /data/【项目名称-环境】/kafka/kafka_2.13-3.6.1/config/kraft vi server.properties

server1.properties

# 节点类型,默认为混合节点
process.roles=broker,controller
# 节点id,为不小于1的整数
node.id=1
# 投票者列表:nodeId+地址端口
controller.quorum.voters=1@localhost:19093,2@localhost:19093,3@localhost:19093
# 内网地址
listeners=PLAINTEXT://:19092,CONTROLLER://:19093
inter.broker.listener.name=PLAINTEXT
# 外网地址
advertised.listeners=PLAINTEXT://localhost:19092
controller.listener.names=CONTROLLER
log.dirs=/tmp/kraft-combined-logs/log1

server2.properties

# 节点类型,默认为混合节点
process.roles=broker,controller
# 节点id,为不小于1的整数
node.id=2
# 投票者列表:nodeId+地址端口
controller.quorum.voters=1@localhost:19093,2@localhost:19093,3@localhost:19093
# 内网地址
listeners=PLAINTEXT://:19092,CONTROLLER://:19093
inter.broker.listener.name=PLAINTEXT
# 外网地址
advertised.listeners=PLAINTEXT://localhost:19093
controller.listener.names=CONTROLLER
log.dirs=/tmp/kraft-combined-logs/log2

server3.properties

# 节点类型,默认为混合节点
process.roles=broker,controller
# 节点id,为不小于1的整数
node.id=3
# 投票者列表:nodeId+地址端口
controller.quorum.voters=1@localhost:19093,2@localhost:19093,3@localhost:19093
# 内网地址
listeners=PLAINTEXT://:19092,CONTROLLER://:19093
inter.broker.listener.name=PLAINTEXT
# 外网地址
advertised.listeners=PLAINTEXT://localhost:19092
controller.listener.names=CONTROLLER
log.dirs=/tmp/kraft-combined-logs/log3

生成集群ID并使用集群ID格式化数据目录

在KRaft模式下,一个集群需要设定一个id,我们可以使用自带的命令生成,先进入上述任意一台虚拟机并使用终端进入Kafka目录中,执行下列命令生成一个UUID:

bin/kafka-storage.sh random-uuid

这里记录下这个ID以备用。kilMbKEoRUq3Ha6nruW6Aw

这个集群ID事实上是一个长度16位的字符串通过Base64编码后得来的,因此你也可以不使用上述命令,直接自定义一个16位长度的纯英文和数字组成的字符串,然后将这个字符串编码为Base64格式作为这个集群ID也可以。可以使用菜鸟工具中的在线Base64编码工具。

然后,分别执行下列命令,配置集群元数据:

./kafka-storage.sh format -t cKTMdVH_QZOJ_wEem1uz7w -c /data/tysf-test/Kafka/kafka_2.13-3.9.1/config/kraft/server.properties 
./kafka-storage.sh format -t cKTMdVH_QZOJ_wEem1uz7w -c /data/tysf-test/Kafka/kafka_2.13-3.9.1/config/kraft/server.properties 
./kafka-storage.sh format -t cKTMdVH_QZOJ_wEem1uz7w -c /data/tysf-test/Kafka/kafka_2.13-3.9.1/config/kraft/server.properties 

启动Kafka集群:

./kafka-server-start.sh -daemon /data/tysf-test/Kafka/kafka_2.13-3.9.1/config/kraft/server.properties 
./kafka-server-start.sh -daemon /data/tysf-test/Kafka/kafka_2.13-3.9.1/config/kraft/server.properties
./kafka-server-start.sh -daemon /data/tysf-test/Kafka/kafka_2.13-3.9.1/config/kraft/server.properties

查看服务是否已经互相通讯

netstat -anutp 

测试 在kafka1 上创建分区

./kafka-topics.sh --bootstrap-server "node1 IP":19092 -create --topic cluster-topic --partitions 3 --replication-factor 3

在kafka2的端口(9094)查询该topic:

./kafka-topics.sh --bootstrap-server 172.17.9.211:19092 --describe --topic cluster-topic

在kafka3的上删除该topic:

./kafka-topics.sh --bootstrap-server localhost:9096 --delete --topic cluster-topic 


常用中间件集群部署
https://www.gmqgmq.cn//archives/redis--clusterji-qun-bu-shu
作者
啊耿不累
发布于
2025年06月26日
许可协议