1、Apache pulsar安装部署
1.1、前期准备
- zookeeper 3.4.5
- pulsar安装包 2.8.1
- 集群免密环境
1.2、部署步骤
1.2.1、上传安装包到linux服务器上
下载地址:https://pulsar.apache.org/zh-CN/download/
1.2.2、解压文件到data目录下
tar -zxvf apache-pulsar-2.8.1-bin.tar.gz -C /data/
1.2.3、初始化集群元数据信息
在risen-cdh01上执行
bin/pulsar initialize-cluster-metadata \
--cluster pulsar-cluster \
--zookeeper risen-cdh01:2181 \
--configuration-store risen-cdh01:2181 \
--web-service-url http://risen-cdh01:8089 \
--web-service-url-tls https://risen-cdh01:8443 \
--broker-service-url pulsar://risen-cdh01:6650 \
--broker-service-url-tls pulsar+ssl://risen-cdh01:6651
执行成功
10:36:09.876 [main] INFO org.apache.bookkeeper.discover.ZKRegistrationManager - Successfully formatted BookKeeper metadata
10:36:09.880 [main] INFO org.apache.zookeeper.ZooKeeper - Session: 0x16734464b360002 closed
10:36:09.880 [main-EventThread] INFO org.apache.zookeeper.ClientCnxn - EventThread shut down for session: 0x16734464b360002
10:36:10.033 [main] INFO org.apache.pulsar.PulsarClusterMetadataSetup - Cluster metadata for 'pulsar-cluster-1' setup correctly
如果执行失败,进入zkclient中。删除相关文件即可
[zookeeper, counters, bookies, ledgers, managed-ledgers, schemas, namespace, admin, loadbalance]
1.2.4、修改Bookkeeper配置文件
vim conf/bookkeeper.conf
修改如下部分:
zkServers=risen-cdh01:2181,risen-cdh02:2181,risen-cdh03:2181
**ps:**端口修改可以自定义,但是不能与已有的端口冲突
1.2.5、修改brokers配置文件
vim conf/broker.conf
修改如下部分:
zookeeperServers=risen-cdh01:2181,risen-cdh02:2181,risen-cdh03:2181
configurationStoreServers=risen-cdh01:2181,risen-cdh02:2181,risen-cdh03:2181
clusterName=pulsar-cluster
1.2.6、修改conf目录下所有8080端口
因为8080端口过于常用,很容易被占用
这里进行调整,改为8089即可
1.2.7、将修改后的文件分发到其他几台服务器
scp -r apache-pulsar-2.8.1/ risen-cdh02:$PWD
scp -r apache-pulsar-2.8.1/ risen-cdh03:$PWD
1.2.8、安装BookKeeper集群
分别在三台机器执行
bin/pulsar-daemon start bookie
关闭
bin/pulsar-daemon stop bookie
执行完毕之后使用如下命令看看是否启动成功
bin/bookkeeper shell bookiesanity
1.2.9、安装brokers集群
分别在三台机器执行
bin/pulsar-daemon start broker
关闭
bin/pulsar-daemon stop broker
然后在risen-cdh01上执行
bin/pulsar-admin brokers list pulsar-cluster
不报错则启动成功
2、Pulsar Manager安装部署
2.1、前期准备
- pulsar集群安装完毕
- 服务器安装了docker
2.2、安装步骤
2.2.1、docker拉取最新的环境
docker pull apachepulsar/pulsar-manager:latest
2.2.2、运行
docker run -dit \
-p 9527:9527 -p 7750:7750 \
-e SPRING_CONFIGURATION_FILE=/pulsar-manager/pulsar-manager/application.properties \
apachepulsar/pulsar-manager:latest
2.2.3、创建账号
CSRF_TOKEN=$(curl http://risen-cdh01: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://risen-cdh01:7750/pulsar-manager/users/superuser \
-d '{"name": "admin", "password": "apachepulsar", "description": "test", "email": "username@test.org"}'
2.2.4、查询有所的cluster
**pulsar-manager调用的pulsar-admin的api,而这个api需要从broker取信息,所以需要给pulsar-admin指定获取信息的broker url。 **
bin/pulsar-admin clusters list
2.2.5、指定cluster
bin/pulsar-admin clusters update pulsar-cluster --url http://192.168.5.213:8089
2.2.6、登录查询
访问http://risen-cdh01:9527
登录刚刚2.2.3设置的账号密码
安装完毕!
3、Pulsar概念简介
3.1、功能和特性
3.1.1、多租户
目的资源隔离,为每位用户配置不同的资源。A用户只能操作20%的资源,B用户操作30%资源(租户与命名空间的操作配合使用)
租户和命名空间是pulsar支持多租户的两个核心概念。
在租户级别,pulsar为特定的租户预留合适的存储空间、应用授权与认证机制
在命名空间级别,pulsar有一系列的配置策略。包括配额、流控、消息过期策略和命名空间之间的隔离策略
3.1.2、灵活的消息系统
- 队列模型和流模型的统一,在Topic级别只需要保存一份数据,同一份数据可多次消费。以流式、队列等方式计算不同的订阅模型大大提升了灵活度
- 同时通过事务采用Exactily-Once在进行消息传输的过程中,可以确保数据不丢失、不重复
- 流模型可以用pulsar function进行进行 从几个topic中流式ETL然后写入到另外的Topic中
3.1.3、云原生架构
- 计算与存储分离的云原生架构。数据从broker搬离ÿ