Pulsar 插件
Pulsar 插件是一个由 runtime 持有的 Pulsar Client,同时管理命名 producer 和 consumer 资源。
Runtime 事实
| 项目 | 值 |
|---|---|
| Go module | github.com/go-lynx/lynx-pulsar |
| 配置前缀 | lynx.pulsar |
| Runtime 插件名 | pulsar.client |
| 公开 API | GetPulsarClient()、GetPulsarClientByName() |
实现里支持什么
当前插件包含:
- 一个受管的 Pulsar client
- 多个配置化 producer
- 多个配置化 consumer
- 鉴权与 TLS 设置
- connection manager
- retry manager
- 健康检查与指标
GetPulsarClientByName() 这个 API 已经存在,但当前实现仍然返回主 client,并不代表真正的多 runtime 插件实例。
配置
lynx:
pulsar:
service_url: "pulsar://localhost:6650"
producers:
- name: "order-producer"
enabled: true
topic: "orders"
consumers:
- name: "order-consumer"
enabled: true
topics:
- "orders"
subscription_name: "order-subscription"
官方模板实际怎么用
官方模板默认并不会启用 Pulsar。
这是有意的:
- 脚手架先从传输层和存储层基本能力起步
- Pulsar 属于服务真正需要 topic 式异步处理时再叠加的消息层
- 所以这页应该被理解成可选接入参考,而不是默认项目形态
如何使用
import pulsarplug "github.com/go-lynx/lynx-pulsar"
client, err := pulsarplug.GetPulsarClient()
拿到插件对象后,应该使用它现有的 producer、consumer、config 和 stats 方法,而不是继续假设旧的 github.com/go-lynx/lynx/plugin/pulsar 包结构还存在。