Introduction and installation of Pulsar

Original link:


Apache Pulsar is a distributed message queue, which mainly consists of the following three parts.

components effect
Broker Responsible for producer and consumer requests as well as message replication and distribution, Broker is stateless and does not store data
Zookeeper Store metadata, cluster configuration, responsible for task coordination and service discovery, etc.
Bookkeeper Message data and persistent storage of cursors data, each storage node of Bookkeeper is called bookie

The producer sends data to Pulsar, the consumer receives data from Pulsar, and the process of the consumer receiving data is called subscription. Pulsar has four subscription models

schema name model
exclusive A subscription can only have one consumer. If multiple consumers use the same subscription to subscribe to a topic, an error will be reported
failover A subscription allows multiple consumers, but only one consumer will work. When the current consumer loses connection, other consumers will go online for consumption
shared Multiple consumers can use the same subscription to subscribe to a topic, and messages are sent to consumers by polling
Shared key (key_shared) Similar to the above, except that the message will be sent to different consumers according to the key

Broker does not store data, data is stored on Bookkeeper. The topic will be divided into multiple partitions, the partitions will be allocated to different brokers, and the producer and consumer will connect to the partitions on the broker to send and receive data. Pulsar supports multi-level topics, you can set whether to persist and the name of the tenant, namespace and topic



We have three nodes , , . First, we download the Pulsar installation package on these three nodes

 useradd pulsarsu - pulsarwget -zxvf apache-pulsar-2.10.0-bin.tar.gzcd apache-pulsar-2.10.0

1. Install the Zookeeper cluster and initialize the Pulsar cluster metadata

Modify the conf/zookeeper.conf configuration file of each node and add the following configuration


Then, for the serial number of each node, set the corresponding serial number to the myid file in the dataDir directory of the node

 mkdir -p data/zookeeperecho 1 > data/zookeeper/myid

After modifying the configuration file, start the Zookeeper service on each node

 bin/pulsar-daemon start zookeeper

After starting the cluster, use the following command to write the metadata of Pulsar

 bin/pulsar initialize-cluster-metadata \ --cluster pulsar-cluster-1 \ --zookeeper \ --configuration-store \ --web-service-url,, \ --broker-service-url pulsar://,,

The specific meaning is as follows

parameter meaning
cluster Pulsar’s cluster name
zookeeper Zookeeper’s address
configuration-store Configure the storage address, use the Zookeeper address
web-service-url The address of the Pulsar cluster web service
broker-service-url The address of the broker service

2. Install the Bookkeeper cluster

Set the conf/bookkeeper.conf configuration file of all nodes and add the Zookeeper connection information


Then start the Bookkeeper service on each node

 bin/pulsar-daemon start bookie

Then use the following command to verify the cluster status of Bookkeeper

 bin/bookkeeper shell simpletest --ensemble 3 --writeQuorum 3 --ackQuorum 3 --numEntries 3

3. Install Pulsar Brokers

Modify the conf/broker.conf configuration file of all nodes

 # 配置pulsar broker连接的zookeeper集群地址zookeeperServers=,,,, broker数据端口brokerServicePort=6650# broker web服务端口webServicePort=8080# pulsar 集群名字,和前面zookeeper初始化集群元数据时配置的一样clusterName=pulsar-cluster-1# 创建一个ledger时使用的bookie数量managedLedgerDefaultEnsembleSize=2# 每个消息的副本数量managedLedgerDefaultWriteQuorum=2# 完成写操作前等待副本ack的数量managedLedgerDefaultAckQuorum=2

Then start the Pulsar service on each node

 bin/pulsar-daemon start broker

Send and consume messages using the client

Modify the conf/client.conf file


Then use the client to consume

 bin/pulsar-client consume \ persistent://public/default/pulsar-test \ -n 100 \ -s "consumer-test" \ -t "Exclusive"

Open a new window and use the producer to send messages

 bin/pulsar-client produce \ persistent://public/default/pulsar-test \ -n 1 \ -m "hello, this is a test for Pulsar"

refer to

Pulsar introduction and deployment

This article is reprinted from:
This site is for inclusion only, and the copyright belongs to the original author.

Leave a Comment

Your email address will not be published.