源码调试pulsar
1.去git拉取代码
2.去https://hub.docker.com 查询zk和bookkeeper的镜像
环境准备
docker pull zookeeper:3.9.4
docker pull apache/bookkeeper:4.17.2
docker run -d --name zookeeper --restart=always -p 2181:2181 zookeeper:3.9.4
docker stop bookkeeper
docker rm bookkeeper
docker run -d
--name bookkeeper
--restart=always
--network host
-e BK_zkServers=localhost:2181
-e BK_metadataServiceUri=zk://localhost:2181/ledgers
-e BK_ledgerManagerType=hierarchical
-e BK_listenOnLoopbackInterface=false
-e BK_advertisedAddress=192.168.206.214
-e BK_bookiePort=3181
-e BK_journalDirectory=/data/journal
-e BK_ledgerDirectories=/data/ledgers
-e BK_indexDirectories=/data/ledgers
-e BK_journalMaxSizeMB=2048
-e BK_journalMaxBackups=5
-e BK_ledgerStorageClass=org.apache.bookkeeper.bookie.storage.ldb.DbLedgerStorage
-e BK_zkEnableSecurity=false
-v bookkeeper_data:/data
apache/bookkeeper:4.17.2
代码准备
先修改配置文件
broker.conf
修改内容如下(我都是单节点启动的)
metadataStoreUrl=192.168.206.214:2181
clusterName=txk
managedLedgerDefaultWriteQuorum=1
managedLedgerDefaultAckQuorum=1
启动顺序
1.先执行PulsarBrokerStarter
启动jvm参数 --add-opens java.management/sun.management=ALL-UNNAMED
启动参数--broker-conf conf/broker.conf
2.执行PulsarClusterMetadataSetup
启动参数 --cluster txk --zookeeper 192.168.206.214:2181 --configuration-store 192.168.206.214:2181 --web-service-url http://localhost:8080 --broker-service-url pulsar://localhost:6650
3.启动SampleProducer
Producer<byte[]> producer = client.newProducer().topic("persistent://public/default/my-topic").create();
for (int i = 0; i < 10; i++) {
producer.send(("my-message>>>>"+i).getBytes());
System.out.println("Published message: my-message");
}
4.启动消费 SampleConsumer
Consumer<byte[]> consumer = pulsarClient.newConsumer() //
.topic("persistent://public/default/my-topic") //
.subscriptionName("my-subscription-name").subscribe();

浙公网安备 33010602011771号