部署流程
部署zk,修改配置文件,生成myid文件,启动zk,初始化元数据,检查zk运行情况
部署bk,修改bk配置文件,执行初始化命令,启动bk,检测 bookie状态
部署broker ,修改broker配置文件,启动broker
查询消息主题检测broker部署状态
内存不够错误
- ERROR org.apache.pulsar.broker.PulsarService - Failed to start Pulsar service: Unable to read VM NIC speed. You must set [loadBalancerOverrideBrokerNicSpeedGbps] to override it when load balancer is enabled.
broker.conf加参数loadBalancerOverrideBrokerNicSpeedGbps
- 如果内存不够可以把参数改小点(broker默认启动用的2G内存4G直接内存。bookie用的2G的2G)
conf下的pulsar_env.sh和bkenv.sh
都改成512
BOOKIE_MEM=${BOOKIE_MEM:-${PULSAR_MEM:-"-Xms512m -Xmx512m -XX:MaxDirectMemorySize=1g"}}
PULSAR_MEM=${PULSAR_MEM:-"-Xms512m -Xmx512m -XX:MaxDirectMemorySize=1g"}
Tenant not found问题
- 执行bin/tong-admin namespaces list public 报错Tenant not found
创建下租户bin/tong-admin tenants create test_tenant
- 执行bin/tong-admin tenants create test_tenant 报错Tenant not found /clusters can not be empty
初始化会创建租户和cluster,如果报以上错误就需要重新进行元数据初始化,bookie初始化
(1)元数据初始化(是在zk运行后执行的)
bin/tong initialize-cluster-metadata \--cluster tlq-cn \--metadata-store zk:10.44.46.78:2182 \--configuration-metadata-store zk:10.44.46.78:2182 \--web-service-url http://10.44.46.78:8087 \--broker-service-url pulsar://10.44.46.78
- bookie初始化(删除jounral,ledgers目录)
删除jounral,ledgers目录,执行 bin/bookkeeper shell metaformat
- 启动bookie
检测bookie启动状态
bin/bookkeeper shell simpletest --ensemble 1 --writeQuorum 1 --ackQuorum 1
Broker的配置文件除了ip端口的修改,还涉及初始化的元数据比如--cluster tlq-cn
- 测试broker部署是否成功
执行bin/tong-admin namespaces list public(会至少列出defalt)
可以测试下生成数据
bin/tong-client produce \
persistent://public/default/cdr_loaddb_topic\
-n 1 \
-m "cdr22"
broker报错Transaction are not enabled
- 连接broker报错,Transaction are not enabled
因为项目中用到消息监听,并运用了事物,所以要在broker.conf下开启事物
broker.conf
transactionCoordinatorEnabled=true
acknowledgmentAtBatchIndexLevelEnabled=true