跳转到主要内容

Pulsar 插件

Pulsar 插件是一个由 runtime 持有的 Pulsar Client,同时管理命名 producer 和 consumer 资源。

Runtime 事实

项目
Go modulegithub.com/go-lynx/lynx-pulsar
配置前缀lynx.pulsar
Runtime 插件名pulsar.client
公开 APIGetPulsarClient()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 包结构还存在。

相关页面