硬件配置

组件

配置

zookeeper

4C8G100G * 3

broker

16C64G500G * 3

bookie

16C64G500G * 5

broker.conf参数

# zk集群地址
zookeeperServers=zk1:2181,zk2:2181,zk3:2181

# 配置存储连接字符串(以逗号分隔的列表)
configurationStoreServers=zk1:2181,zk2:2181,zk3:2181

# Hostname or IP address
advertisedAddress=本机ip
brokerServicePort=6650

brokerServicePortTls=6651

webServicePort=8080

webServicePortTls=8443

# 集群名称
clusterName=pulsar_cluster

# 自动删除不活动的topic
brokerDeleteInactiveTopicsEnabled=false

# 默认Bundle数量为4,该值应为Broker节点的整数倍
defaultNumberOfNamespaceBundles=12

# 消费确认过的消息超过该大小后会触发删除策略
defaultRetentionSizeInMB=409600

# 消费确认过的消息超过指定时间后触发删除策略
defaultRetentionTimeInMinutes=2880

# 未被消费确认的消息大存储大小(-1表示没有限制,保持默认)
# 如果保持默认需要通过set-message-ttl设置过期时间,防止磁盘爆满
backlogQuotaDefaultLimitGB=-1

# 未被消费确认的消息超过存储大小的策略(保持默认)
backlogQuotaDefaultRetentionPolicy=producer_request_hold

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

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

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

# 一次从bookkeeper读取的数量,默认为100条
dispatcherMaxReadBatchSize=500

# 关闭auto bundle split功能,提高客户端稳定性
loadBalancerAutoBundleSplitEnabled=false

# 关闭auto bundle split功能,提高客户端稳定性
loadBalancerAutoUnloadSplitBundlesEnabled=false

# 禁止Pulsar自动均衡
loadBalancerSheddingEnabled = false

# 禁止Pulsar自动均衡
loadBalancerEnabled = false

bookkeeper.conf参数

# zk地址
zkServers=zk1:2181,zk2:2181,zk3:2181

# BookKeeper存储其预写日志的目录,多个目录逗号进行分割,防止线程阻塞
journalDirectory=/data/bookkeeper/journal01,/data/bookkeeper/journal02

# 指定存储BookKeeper输出ledger的目录。多个ledger目录,需要使用逗号分割
ledgerDirectories=/data/bookkeeper/ledgers01,/data/bookkeeper/ledgers02

# 为提高性能journalDirectory和ledgerDirectories可以配置到不同的磁盘

pulsar_env.sh内存调整

下面以64G内存为例分配JVM和MaxDirectMemorySize

BOOKIE_MEM=${BOOKIE_MEM:-${PULSAR_MEM:-"-Xms15g -Xmx15g -XX:MaxDirectMemorySize=15g"}}


bkenv.sh内存调整

下面以64G内存为例分配JVM和MaxDirectMemorySize

BOOKIE_MEM=${BOOKIE_MEM:-${PULSAR_MEM:-"-Xms10g -Xmx10g -XX:MaxDirectMemorySize=20g"}}