背景

之前都是按统一的部署架构(broker3台+bookies5台)在生产环境部署一套puslar集群,上线后,查看监控,硬件资源使用率较低,本着降本省钱的理念,于是开始考虑缩减机器,bookies可以缩减成3台。说干就干。


操作方法

broker操作

1,修改broker配置文件

# 创建Ledger时指定Ensemble的大小
managedLedgerDefaultEnsembleSize=3

# 创建Ledger时指定Quorum的大小
managedLedgerDefaultWriteQuorum=3

# 创建Ledger时指定ack Quorum的大小
managedLedgerDefaultAckQuorum=2

修改成
# 创建Ledger时指定Ensemble的大小
managedLedgerDefaultEnsembleSize=2

# 创建Ledger时指定Quorum的大小
managedLedgerDefaultWriteQuorum=2

# 创建Ledger时指定ack Quorum的大小
managedLedgerDefaultAckQuorum=2

2,逐台重启broker节点

#关闭broker
bin/pulsar-daemon stop broker

#启动broker
bin/pulsar-daemon start broker

#检查集群状况
bin/pulsar-admin brokers list pulsar-cluster

booikes操作

1,登陆到需要下线的bookeis节点,使用命令来看还有多少ledgers没处理完

bin/bookkeeper shell listunderreplicated

pulsar优雅缩减bookies_生产环境

上图说明没有ledgers没处理完

另一个节点也同样执行行上面的操作

2,关闭bookies节点

bin/pulsar-daemon stop bookie

pulsar优雅缩减bookies_生产环境_02

3,摘除bookies

bin/bookkeeper shell decommissionbookie

pulsar优雅缩减bookies_硬件资源_03出现上图,说明摘除成功

另一个节点也同样执行行上面的操作

4,检查bookies列表

bin/bookkeeper shell listbookies -a

pulsar优雅缩减bookies_生产环境_04

摘除的那两个节点已不在列表中