Pulsar 入门实战(3)--安装
本文主要介绍 Pulsar 的安装,相关的情况及软件信息如下:CentOS 7.9.2009、Pulsar 3.3.0、Java 17.0.10。1、单机版安装
为了当地开辟和测试,可以以单机模式运行 Pulsar。单机模式将全部组件运行在单个 Java 虚拟机(JVM)进程内。
官网(https://pulsar.apache.org/download/)下载安装包并解压:
tar zxvf apache-pulsar-3.3.0-bin.tar.gz启动 pulsar:
bin/pulsar standalone如果机器内存较小,可能无法启动,需调整 pulsar 的内存大小,修改 conf/pulsar_env.sh 文件中的 PULSAR_MEM 参数:
PULSAR_MEM=${PULSAR_MEM:-"-Xms256m -Xmx512m -XX:MaxDirectMemorySize=1g"}2、单集群安装
2.1、集群规划
主机部署组件10.49.196.30Broker、Bookie、Zookeeper10.49.196.31Broker、Bookie、Zookeeper10.49.196.32Broker、Bookie、Zookeeper2.2、Zookeeper 集群部署
Zookeeper 可以使用单独安装的集群,也可以使用 Pulsar 自带的 Zookeeper;这里使用 Pulsar 自带的 Zookeeper。
A、修改 conf/zookeeper.conf 文件:
#以下注释掉
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=8000
#metricsProvider.exportJvmInfo=true
#以下新增
server.1=10.49.196.30:2888:3888
server.2=10.49.196.31:2888:3888
server.3=10.49.196.32:2888:3888 B、根据设置文件中的 dataDir 参数(默以为 data/zookeeper)创建数据目录:
mkdir -p data/zookeeperC、创建 id 文件
echo 1 > data/zookeeper/myid #10.40.196.30 上执行
echo 2 > data/zookeeper/myid #10.40.196.31 上执行
echo 3 > data/zookeeper/myid #10.40.196.32 上执行D、启停 Zookeeper
bin/pulsar-daemon start zookeeper #启动
bin/pulsar-daemon stop zookeeper #停止2.3、元数据初始化
可以使用 pulsar CLI 工具的 initialize-cluster-metadata 命令来初始化元数据。在任一台机器上执行:
bin/pulsar initialize-cluster-metadata \
--cluster pulsar-cluster-1 \
--metadata-store zk:10.49.196.30:2181,10.49.196.31:2181,10.49.196.32:2181 \
--configuration-metadata-store zk:10.49.196.30:2181,10.49.196.31:2181,10.49.196.32:2181 \
--web-service-url http://10.49.196.30:8080,10.49.196.31:8080,10.49.196.32:8080 \
--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 文件,设置元数据服务地点:
metadataServiceUri=zk://10.49.196.30:2181;10.49.196.31:2181;10.49.196.32:2181/ledgers 启动 bookie:
bin/pulsar-daemon start bookie如果集群内存不够,可以在 conf/bkenv.sh 中调整内存参数:
BOOKIE_MEM=${BOOKIE_MEM:-${PULSAR_MEM:-"-Xms256m -Xmx512m -XX:MaxDirectMemorySize=1g"}}bookie 启动后,可以运行以下命令来验证 bookie 是否正常工作:
bin/bookkeeper shell bookiesanity该命令在当地创建一个临时的 BookKeeper ledger,写入几个条目,读取它们,最后删除这个 ledger。
在启动全部 bookie 后,可以在任一节点上使用以下命令,来验证集群中全部 bookie 是否正常运行:
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:
metadataStoreUrl=zk:10.49.196.30:2181,10.49.196.31:2181,10.49.196.32:2181
configurationMetadataStoreUrl=zk:10.49.196.30:2181,10.49.196.31:2181,10.49.196.32:2181
clusterName=pulsar-cluster-1启动 broker:
bin/pulsar-daemon start broker2.6、使用 pulsar-client 连接 pulsar 集群
修改设置文件 conf/client.conf:
webServiceUrl=http://10.49.196.30:8080,10.49.196.31:8080,10.49.196.32:8080
brokerServiceUrl=pulsar://10.49.196.30:6650,10.49.196.31:6650,10.49.196.32:6650发送消息:
bin/pulsar-client produce \
persistent://public/default/test \
-n 1 \
-m "Hello Pulsar"接受消息:
bin/pulsar-client consume \
persistent://public/default/test \
-n 100 \
-s "consumer-test" \
-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/)下载安装包,然后解压。
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
tar -zxvf apache-pulsar-manager-0.4.0-bin.tar.gz4.2、解压后端应用包并拷贝前端资源到后端目录
cd apache-pulsar-manager-0.4.0-bin
tar xvf pulsar-manager.tar
cd pulsar-manager
cp -r ../dist ui4.3、启动 pulsar-manager
./bin/pulsar-manager #不能使用 JDK17,会报错启动后访问地点为:http://host:7750/ui/index.html。
https://img2024.cnblogs.com/blog/1846282/202407/1846282-20240731175109615-1235703874.png
4.4、初始化用户
CSRF_TOKEN=$(curl http://10.49.196.32:7750/pulsar-manager/csrf-token)
curl \
-H "X-XSRF-TOKEN: $CSRF_TOKEN" \
-H "Cookie: XSRF-TOKEN=$CSRF_TOKEN;" \
-H 'Content-Type: application/json' \
-X PUT http://10.49.196.32:7750/pulsar-manager/users/superuser \
-d '{"name": "admin", "password": "apachepulsar", "description": "test", "email": "username@test.org"}'4.5、设置情况
https://img2024.cnblogs.com/blog/1846282/202407/1846282-20240731175426349-1803264675.png
Service URL 和 Bookie URL 只需设置集群中一个结点的地点,配多个会报错。
5、Pulsar 常用设置
5.1、Broker(conf/broker.conf)
参数阐明范例默认值是否动态参数clusterName*集群名称java.lang.StringnullfalseauthenticationEnabled是否启用认证booleanfalsefalseauthenticationProviders身份验证提供者java.util.Set[]falseauthenticationRefreshCheckSeconds检查身份凭据过期的时间隔断int60falseanonymousUserRole匿名用户的脚色java.lang.StringnullfalseauthorizationEnabled是否启用授权booleanfalsefalsedisableHttpDebugMethods是否禁用 TRACE 和 TRACK 哀求boolean falsefalsehttpMaxRequestHeaderSize哀求头的最大大小,单位为字节int8192falsehttpMaxRequestSize哀求体的最大大小int-1falsehttpRequestsFailOnUnknownPropertiesEnabled哀求中有位置参数时是否失败booleanfalsetruehttpRequestsLimitEnabled是否启用对哀求的限制booleanfalsefalsehttpRequestsMaxPerSecond每秒允许的最大 HTTP 哀求次数double100falsebrokerDeleteInactivePartitionedTopicMetadataEnabled是否主动删除不活动分区主题的元数据信息booleanfalsetruebrokerDeleteInactiveTopicsEnabled是否主动删除不活动主题booleantruetruebrokerDeleteInactiveTopicsFrequencySeconds检查不活动主题的隔断int60truebrokerDeleteInactiveTopicsMaxInactiveDurationSeconds不活动主题存活的最长时间java.lang.Integernulltrue brokerDeleteInactiveTopicsMode不活动主题删除模式
delete_when_no_subscriptions 删除没有订阅者且没有活泼生产者的主题
delete_when_subscriptions_caught_up 删除全部订阅者都没有积存消息且没有活泼生产者/消费者的主题
InactiveTopicDeleteModedelete_when_no_subscriptionstruebrokerMaxConnectionsbroker 最大连接数int0falsebrokerMaxConnectionsPerIp连接 broker 时,每个 IP 的最大连接数int0falsebindAddress绑定地点java.lang.String0.0.0.0falsebindAddresses额外的绑定地点,格式化为 :://:java.lang.StringnullfalsebrokerServicePortbroker 端口,与 bindAddress 参数组成一个绑定地点:bindAddress:brokerServicePortjava.util.OptionalOptionalfalsebrokerServicePortTlsbroker tls 端口,与 bindAddress 参数组成一个绑定地点:bindAddress:brokerServicePortTlsjava.util.OptionalOptional.emptyfalsebrokerShutdownTimeoutMs优雅关闭 broker 的等待时间,超过此时间,进程将被逼迫停止。long60000trueclientLibraryVersionCheckEnabled是否启用检查最低允许的客户端库版本booleanfalsetrueconfigurationMetadataStoreUrl设置元数据地点,如果为空则使用 metadataStoreUrljava.lang.StringnullfalsedelayedDeliveryEnabled是否启用消息的延迟投递booleantruefalsedelayedDeliveryMaxDelayInMillis延迟投递的最大允许延迟(以毫秒为单位)。如果 broker 接收到的消息超过了此最大延迟,那么将向生产者返回错误。默认值为 0,表示没有最大投递延迟限制。long0falsedelayedDeliveryMaxDelayInMillis检查延迟消息是否已到投递时间的时间隔断,默以为 1 秒long1000falseenableNonPersistentTopics是否允许 broker 加载非持久化主题booleantruefalseenablePersistentTopics是否允许 broker 加载持久化主题booleantruefalsekeepAliveIntervalSeconds检查 Pulsar 连接是否仍然活动的频率int30falsemaxConcurrentHttpRequestsweb 哀求最大并发连接数int1024falsemaxConsumersPerSubscription一个订阅允许的最大消费者个数int0falsemaxConsumersPerTopic一个主题允许的最大消费者个数int0falsemaxHttpServerConnections最大 HTTP 连接数int2048falsemaxMessageSize消息的最大大小int5242880falsemaxNumPartitionsPerPartitionedTopic分区主题的最大分区数int0 true maxProducersPerTopic一个主题允许的最大生产者个数int0falsemaxPublishRatePerTopicInBytes发布消息到一个主题的最大速率(byte/s)long0truemaxPublishRatePerTopicInMessages发布消息到一个主题的最大速率(个/s)int0truemaxSameAddressConsumersPerTopic一个主题同一 IP 的最大消费者个数int 0falsemaxSameAddressProducersPerTopic一个主题同一 IP 的最大生产者个数int0falsemaxSubscriptionsPerTopic一个主题的最大订阅数int0falsemaxTenantsPulsar 集群可以创建的最大租户数int0falsemetadataStoreUrl元数据存储地点(Zookeeper 地点)java.lang.StringnullfalsesystemTopicEnabled是否启用体系主题booleantruefalsewebServicePortWeb 服务端口java.util.OptionalOptionalfalsewebServicePortTlsWeb 服务 TLS 端口java.util.OptionalOptional.emptyfalseallowAutoTopicCreation是否允许主动创建主题booleantruetrueallowAutoTopicCreationType允许主动创建的主题范例TopicTypenon-partitionedtrue5.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日志目录logspulsar.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企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]