Pulsar 入门实战(3)--安装

打印 上一主题 下一主题

主题 507|帖子 507|积分 1521

本文主要介绍 Pulsar 的安装,相关的情况及软件信息如下:CentOS 7.9.2009、Pulsar 3.3.0、Java 17.0.10。
1、单机版安装

为了当地开辟和测试,可以以单机模式运行 Pulsar。单机模式将全部组件运行在单个 Java 虚拟机(JVM)进程内。
官网(https://pulsar.apache.org/download/)下载安装包并解压:
  1. tar zxvf apache-pulsar-3.3.0-bin.tar.gz
复制代码
启动 pulsar:
  1. bin/pulsar standalone
复制代码
如果机器内存较小,可能无法启动,需调整 pulsar 的内存大小,修改 conf/pulsar_env.sh 文件中的 PULSAR_MEM 参数:
  1. PULSAR_MEM=${PULSAR_MEM:-"-Xms256m -Xmx512m -XX:MaxDirectMemorySize=1g"}
复制代码
2、单集群安装

2.1、集群规划

主机部署组件
10.49.196.30Broker、Bookie、Zookeeper
10.49.196.31Broker、Bookie、Zookeeper
10.49.196.32Broker、Bookie、Zookeeper
2.2、Zookeeper 集群部署

Zookeeper 可以使用单独安装的集群,也可以使用 Pulsar 自带的 Zookeeper;这里使用 Pulsar 自带的 Zookeeper。
A、修改 conf/zookeeper.conf 文件:
  1. #以下注释掉
  2. #metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
  3. #metricsProvider.httpPort=8000
  4. #metricsProvider.exportJvmInfo=true
  5. #以下新增
  6. server.1=10.49.196.30:2888:3888
  7. server.2=10.49.196.31:2888:3888
  8. server.3=10.49.196.32:2888:3888
复制代码
 B、根据设置文件中的 dataDir 参数(默以为 data/zookeeper)创建数据目录:
  1. mkdir -p data/zookeeper
复制代码
C、创建 id 文件
  1. echo 1 > data/zookeeper/myid #10.40.196.30 上执行
  2. echo 2 > data/zookeeper/myid #10.40.196.31 上执行
  3. echo 3 > data/zookeeper/myid #10.40.196.32 上执行
复制代码
D、启停 Zookeeper
  1. bin/pulsar-daemon start zookeeper #启动
  2. bin/pulsar-daemon stop zookeeper #停止
复制代码
2.3、元数据初始化

可以使用 pulsar CLI 工具的 initialize-cluster-metadata 命令来初始化元数据。在任一台机器上执行:
  1. bin/pulsar initialize-cluster-metadata \
  2.     --cluster pulsar-cluster-1 \
  3.     --metadata-store zk:10.49.196.30:2181,10.49.196.31:2181,10.49.196.32:2181 \
  4.     --configuration-metadata-store zk:10.49.196.30:2181,10.49.196.31:2181,10.49.196.32:2181 \
  5.     --web-service-url http://10.49.196.30:8080,10.49.196.31:8080,10.49.196.32:8080 \
  6.     --broker-service-url pulsar://10.49.196.30:6650,10.49.196.31:6650,10.49.196.32:6650 \
复制代码
命令选项阐明:
选项阐明
--cluster*集群名称
--metadata-store*元数据存储的连接字符串,只需包罗 ZooKeeper 集群中的一台机器即可
--configuration-metadata-store*设置元数据存储的连接字符串,与 --metadata-store 雷同,只需包罗 ZooKeeper 集群中的一台机器即可
--web-service-url*集群的 Web 服务 URL,默认端口是 8080(最好不要使用不同的端口)
--web-service-url-tls集群的 TLS Web 服务 URL,默认端口是 8443(最好不要使用不同的端口)
--broker-service-url*broker 服务 URL,默认端口是 6650(最好不要使用不同的端口)
--broker-service-url-tlsbroker TLS 服务 URL,默认端口是 6651(最好不要使用不同的端口)
注意:当设置一个新的集群时,需要在元数据存储(例如 ZooKeeper)上初始化集群的元数据,只需初始化一次。
2.4、BookKeeper 集群部署

修改 conf/bookkeeper.conf 文件,设置元数据服务地点:
  1. metadataServiceUri=zk://10.49.196.30:2181;10.49.196.31:2181;10.49.196.32:2181/ledgers
复制代码
 启动 bookie:
  1. bin/pulsar-daemon start bookie
复制代码
如果集群内存不够,可以在 conf/bkenv.sh 中调整内存参数:
  1. BOOKIE_MEM=${BOOKIE_MEM:-${PULSAR_MEM:-"-Xms256m -Xmx512m -XX:MaxDirectMemorySize=1g"}}
复制代码
bookie 启动后,可以运行以下命令来验证 bookie 是否正常工作:
  1. bin/bookkeeper shell bookiesanity
复制代码
该命令在当地创建一个临时的 BookKeeper ledger,写入几个条目,读取它们,最后删除这个 ledger。
在启动全部 bookie 后,可以在任一节点上使用以下命令,来验证集群中全部 bookie 是否正常运行:
  1. bin/bookkeeper shell simpletest --ensemble <num-bookies> --writeQuorum <num-bookies> --ackQuorum <num-bookies> --numEntries <num-entries>
复制代码
该命令在集群上创建一个 ledger,该 ledger 位于 num-bookies 个 bookie 上,写入 numEntries 个条目,最后删除这个 ledger。
2.5、Pulsar brokers 部署

修改 broker 设置文件 conf/broker.conf:
  1. metadataStoreUrl=zk:10.49.196.30:2181,10.49.196.31:2181,10.49.196.32:2181
  2. configurationMetadataStoreUrl=zk:10.49.196.30:2181,10.49.196.31:2181,10.49.196.32:2181
  3. clusterName=pulsar-cluster-1
复制代码
启动 broker:
  1. bin/pulsar-daemon start broker
复制代码
2.6、使用 pulsar-client 连接 pulsar 集群

修改设置文件 conf/client.conf:
  1. webServiceUrl=http://10.49.196.30:8080,10.49.196.31:8080,10.49.196.32:8080
  2. brokerServiceUrl=pulsar://10.49.196.30:6650,10.49.196.31:6650,10.49.196.32:6650
复制代码
发送消息:
  1. bin/pulsar-client produce \
  2.     persistent://public/default/test \
  3.     -n 1 \
  4.     -m "Hello Pulsar"
复制代码
接受消息:
  1. bin/pulsar-client consume \
  2.     persistent://public/default/test \
  3.     -n 100 \
  4.     -s "consumer-test" \
  5.     -t "Exclusive"
复制代码
3、多集群安装

一个 Pulsar 实例由多个 Pulsar 集群组成,它们之间协同工作;这些集群分布在不同的数据中心或地理区域,使用地理复制技术在它们之间进行数据复制。多集群安装较复杂,这里就不详细介绍,可参考官网 https://pulsar.apache.org/docs/3.3.x/deploy-bare-metal-multi-cluster
4、pulsar-manager 安装

4.1、下载并解压安装包

官网(https://pulsar.apache.org/download/)下载安装包,然后解压。
  1. wget https://dist.apache.org/repos/dist/release/pulsar/pulsar-manager/pulsar-manager-0.4.0/apache-pulsar-manager-0.4.0-bin.tar.gz
  2. tar -zxvf apache-pulsar-manager-0.4.0-bin.tar.gz
复制代码
4.2、解压后端应用包并拷贝前端资源到后端目录
  1. cd apache-pulsar-manager-0.4.0-bin
  2. tar xvf pulsar-manager.tar
  3. cd pulsar-manager
  4. cp -r ../dist ui
复制代码
4.3、启动 pulsar-manager
  1. ./bin/pulsar-manager #不能使用 JDK17,会报错
复制代码
启动后访问地点为:http://host:7750/ui/index.html。

4.4、初始化用户
  1. CSRF_TOKEN=$(curl http://10.49.196.32:7750/pulsar-manager/csrf-token)
  2. curl \
  3.     -H "X-XSRF-TOKEN: $CSRF_TOKEN" \
  4.     -H "Cookie: XSRF-TOKEN=$CSRF_TOKEN;" \
  5.     -H 'Content-Type: application/json' \
  6.     -X PUT http://10.49.196.32:7750/pulsar-manager/users/superuser \
  7.     -d '{"name": "admin", "password": "apachepulsar", "description": "test", "email": "username@test.org"}'
复制代码
4.5、设置情况


Service URL 和 Bookie URL 只需设置集群中一个结点的地点,配多个会报错。
5、Pulsar 常用设置

5.1、Broker(conf/broker.conf)

参数阐明范例默认值是否动态参数
clusterName*集群名称java.lang.Stringnullfalse
authenticationEnabled是否启用认证booleanfalsefalse
authenticationProviders身份验证提供者java.util.Set[]false
authenticationRefreshCheckSeconds检查身份凭据过期的时间隔断int60false
anonymousUserRole匿名用户的脚色java.lang.Stringnullfalse
authorizationEnabled是否启用授权booleanfalsefalse
disableHttpDebugMethods是否禁用 TRACE 和 TRACK 哀求boolean falsefalse
httpMaxRequestHeaderSize哀求头的最大大小,单位为字节int8192false
httpMaxRequestSize哀求体的最大大小int-1false
httpRequestsFailOnUnknownPropertiesEnabled哀求中有位置参数时是否失败booleanfalsetrue
httpRequestsLimitEnabled是否启用对哀求的限制booleanfalsefalse
httpRequestsMaxPerSecond每秒允许的最大 HTTP 哀求次数double100false
brokerDeleteInactivePartitionedTopicMetadataEnabled是否主动删除不活动分区主题的元数据信息booleanfalsetrue
brokerDeleteInactiveTopicsEnabled是否主动删除不活动主题booleantruetrue
brokerDeleteInactiveTopicsFrequencySeconds检查不活动主题的隔断int60true
brokerDeleteInactiveTopicsMaxInactiveDurationSeconds不活动主题存活的最长时间java.lang.Integernulltrue 
brokerDeleteInactiveTopicsMode不活动主题删除模式
delete_when_no_subscriptions 删除没有订阅者且没有活泼生产者的主题
delete_when_subscriptions_caught_up 删除全部订阅者都没有积存消息且没有活泼生产者/消费者的主题
InactiveTopicDeleteModedelete_when_no_subscriptionstrue
brokerMaxConnectionsbroker 最大连接数int0false
brokerMaxConnectionsPerIp连接 broker 时,每个 IP 的最大连接数int0false
bindAddress绑定地点java.lang.String0.0.0.0false
bindAddresses额外的绑定地点,格式化为 :://:java.lang.Stringnullfalse
brokerServicePortbroker 端口,与 bindAddress 参数组成一个绑定地点:bindAddress:brokerServicePortjava.util.OptionalOptional[6650]false
brokerServicePortTlsbroker tls 端口,与 bindAddress 参数组成一个绑定地点:bindAddress:brokerServicePortTlsjava.util.OptionalOptional.emptyfalse
brokerShutdownTimeoutMs优雅关闭 broker 的等待时间,超过此时间,进程将被逼迫停止。long60000true
clientLibraryVersionCheckEnabled是否启用检查最低允许的客户端库版本booleanfalsetrue
configurationMetadataStoreUrl设置元数据地点,如果为空则使用 metadataStoreUrljava.lang.Stringnullfalse
delayedDeliveryEnabled是否启用消息的延迟投递booleantruefalse
delayedDeliveryMaxDelayInMillis延迟投递的最大允许延迟(以毫秒为单位)。如果 broker 接收到的消息超过了此最大延迟,那么将向生产者返回错误。默认值为 0,表示没有最大投递延迟限制。long0false
delayedDeliveryMaxDelayInMillis检查延迟消息是否已到投递时间的时间隔断,默以为 1 秒long1000false
enableNonPersistentTopics是否允许 broker 加载非持久化主题booleantruefalse
enablePersistentTopics是否允许 broker 加载持久化主题booleantruefalse
keepAliveIntervalSeconds检查 Pulsar 连接是否仍然活动的频率int30false
maxConcurrentHttpRequestsweb 哀求最大并发连接数int1024false
maxConsumersPerSubscription一个订阅允许的最大消费者个数int0false
maxConsumersPerTopic一个主题允许的最大消费者个数int0false
maxHttpServerConnections最大 HTTP 连接数int2048false
maxMessageSize消息的最大大小int5242880false
maxNumPartitionsPerPartitionedTopic分区主题的最大分区数inttrue 
maxProducersPerTopic一个主题允许的最大生产者个数int0false
maxPublishRatePerTopicInBytes发布消息到一个主题的最大速率(byte/s)long0true
maxPublishRatePerTopicInMessages发布消息到一个主题的最大速率(个/s)int0true
maxSameAddressConsumersPerTopic一个主题同一 IP  的最大消费者个数int 0false
maxSameAddressProducersPerTopic一个主题同一 IP  的最大生产者个数int0false
maxSubscriptionsPerTopic一个主题的最大订阅数int0false
maxTenantsPulsar 集群可以创建的最大租户数int0false
metadataStoreUrl元数据存储地点(Zookeeper 地点)java.lang.Stringnullfalse
systemTopicEnabled是否启用体系主题booleantruefalse
webServicePortWeb 服务端口java.util.OptionalOptional[8080]false
webServicePortTlsWeb 服务 TLS 端口java.util.OptionalOptional.emptyfalse
allowAutoTopicCreation是否允许主动创建主题booleantruetrue
allowAutoTopicCreationType允许主动创建的主题范例TopicTypenon-partitionedtrue
5.2、Client(conf/client.conf)

参数阐明范例是否必须默认值
webServiceUrlREST API 服务地点java.lang.StringRequiredhttp://localhost:8080/
brokerServiceUrlPulsar 二进制协议服务地点java.lang.StringRequiredpulsar://localhost:6650/
5.3、Log4j(conf/log4j.yaml)

参数阐明默认值
pulsar.log.dir日志目录logs
pulsar.log.filepulsar 日志文件plusar.log
 
 
参考:
https://pulsar.apache.org/docs/3.3.x/deploy-bare-metal/
https://pulsar.apache.org/reference/#/3.3.x/config/
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

徐锦洪

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表