Apache Pulsar学习笔记14: 使用Helm在Kubernetes集群中部署Pulsar
时间过得比较久了,在开始今天的学习之前先回顾一下前面已经学习的13节的内容。 0.阶段复习 Pulsar是一个支持多租户的、高性能的、分布式的Pub-Sub消息系统。 了解Pulsar的架构。Pulsar提供了一个比Cluster更高级别的抽象Instance。 一个Pulsar Instance由多个Pulsar Cluster组成 一个Instance中的Cluster之间可以相互跨地域复制数据 单个Pulsar集群由以下部分组成: Pulsar Proxy: 是无状态的,Proxy作为集群的智能路由层,是负责Pulsar客户端与Pulsar集群交互的统一网关 Pulsar Brokers: 也是无状态的,是集群的服务层,Proxy会将客户端的访问请求转发到正确的Broker上。Broker作为服务层与Pulsar的存储层进行交互 Bookies: 一个集群有多个Bookie节点(组成Bookeeper集群)负责消息的持久化存储 Zookeeper: 用于集群级别的配置和协调,并存储Pulsar集群的所有元数据 以docker容器运行单机Pulsar 学习使用命令行工具pulsar-admin创建tenant、namespace、topic 了解Pulsar Admin REST API tenant、namespace、topic的基本概念 Pulsar基于租户、命名空间、主题的逻辑层次结构支持多租户 分区Topic的概念 Topic URL格式 持久化Topic和非持久化Topic的概念 生产者和消费者、订阅和订阅模式 Pulsar支持: exclusive(独占), failover(故障转移/灾备), shared(共享), key-shared(基于key的共享模式) 4中订阅模式 使用命令行工具pulsar-client进行生产者和消费者测试 使用Pulsar Java客户端库创建生产者、消费者、Reader 消费者端可以使用"同步接收消息", “异步接收消息”, “MessageListener接收” 3种模式,其中MessageListener自带线程池 创建消费者时可以设置消费者的批量接收策略 多主题订阅: 设置单个消费者订阅多个主题 消费异常处理可以使用"无限重试", “捕获并忽略异常”, “死信主题(Dead Letter Topic)“三种方式 使用消息Reader可以由用户自己手动在Topic中定位,读取想要读取的消息 使用Pulsar Go客户端库 消费者端支持consumer.Receive()和consumer.Chan()两种方式消费消息。前者对channel关闭和context cancel的情况做了封装,后者要我们自己处理和channel的交互,但也提供了最大的灵活性。 多主题订阅 死信策略和死信主题 使用消息Reader 使用Pulsar Schema管理消息数据的类型安全性 Web图形化管理工具Pulsar Manager 延迟消息投递特性 指定多长时间后投递deliverAfter 指定在将来某个时间点投递deliverAt 分区Topic和路由模式 认证和授权 开启JWT身份认证 授权和权限管理 前面的学习一直是基于以docker容器启动的单机Pulsar。今天将学习使用Helm在Kubernetes集群中部署Pulsar集群。