本期 TGIP-CN,我们邀请到了 StreamNative 高级工程师俄广宁同学,为大家分享了关于 Pulsar 管理工具的介绍和代码应用,主要是 Pulsar Manager。
其中包括了 Pulsar Manager 的开发动机和如何上手使用,如何将 Pulsar 的多租户与 Pulsar Manager 的授权机制等结合并高效使用的细节等。
为什么开发 Puslar Manager
此前,Pulsar 已有监控工具 Dashboard ,但它侧重于对 Pulsar 的简单监控(例如,搜集并展示 Tenants、Namespaces、Topics 和 Subscriptions 等监控信息),无法进行高阶管理(例如,对 Tenant、Namespace 和 Topic 等进行增加、删除、更新等操作),尤其是集群数量较多时,仅通过命令行工具 pulsar-admin 进行管理,效果却不尽人意。
基于此 StreamNative 的小伙伴便开发了 Pulsar Manager,想要对上述提出的高阶管理进行把控和操作,同时又加入了一些监控功能。主要体现在消息聚合,比如多集群、多环境的管理,支持 TLS 加密、JWT 认证和授权等。
在最新版本中又加入了对 BookKeeper 的管理,更多详情可以参考:
http://pulsar.apache.org/en/pulsar-manager-release-notes/
如何快速上手 Pulsar Manager
关于使用 Pulsar Manager 的介绍中,广宁首先为我们展示了如何使用 Pulsasr Manager 接入 BookKeeper 集群。
在进入代码操作之前,需要先准备 3 个安装包,分别是:
apache-pulsar-2.6.1-bin.tar.gz
apache-pulsar-manager-0.2.0-bin.tar.gz
apachepulsar/pulsar-manager:v0.2.0
这些都可以在 https://pulsar.apache.org/en/download/ 页面下进行下载。同时此次演示中所有命令行都可以参考:
https://github.com/tuteng/tgip-cn-27
关于使用 Pulsar Manager 的代码操作,大家可以参考回放视频中 11:50-14:40 时间段。
以上是基于本地环境来启动 Pulsar 和 Pulsar Manager 服务的介绍。接下来广宁又为大家演示了如何 基于容器来部署 Pulsar 和 Pulsar Manager 服务 。具体实操可以参考上方回放视频 15:10-22:30 时间段。
在最后的实例展示中,广宁通过启动 ZooKeeper、BookKeeper、Broker 和 Pulsar Manager,并开启 JWT 模式来 模拟实际生产环境中的代码部署 。同时开启 token 管理,进行授权、验证权限等,并对生产和消费进行实时测试。
具体代码实操部分可以参考上方回放视频 23:10-39:30 时间段。
Pulsar Manager 使用中的常见问题
Q1: 在 Pulsar Manager 上,集群页面不能正常展示
这种情况下,可通过将集群的 Service URL 更新为正确的即可,具体操作可参考下方代码
./bin/pulsar-admin clusters get cluster-name
Q2: Pulsar manager 如何使用自定义 MySQL 数据库
当初将 Pulsar Manager 开源并回馈给 Apache 社区时,由于当时 MySQL 的 License 和 Apache 的 License 有冲突,我们便将 MySQL connector 的相关功能的依赖给删除了。
但是后续也有用户会用到自定义 MySQL 数据,所以目前的解决方式是在 StreamNative repo 库下做了 Pulsar Manager 0.2.1 版本 release,在下方的 issues 中有提到关于使用 MySQL 自定义的步骤,大家可以参考下方链接:
https://github.com/streamnative/pulsar-manager/issues/164
总结
本期直播中,主要为大家展示了关于 Pulsar Manager 的一些应用和实例,希望通过本次分享,大家可以对 Pulsar 管理工具有了更深的了解并在未来实际部署中可以顺利应用。
👍 推荐阅读
➡️ 揭开 Pulsar Flink connector 的非神秘面纱
➡️ StreamNative 开源并贡献 Apache Pulsar Manager 至 Apache Pulsar
👇🏻点击「阅读原文」一起为 Pulsar 发光发热吧
本文分享自微信公众号 - StreamNative(StreamNative)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。