跳到主要内容
版本:Next
input/pulsarINPUTBUFFERPROCESSOROUTPUT

Pulsar

Pulsar 输入(Input)订阅 Apache Pulsar 主题(Topic),支持四种订阅(Subscription)类型——exclusive / shared / failover / key_shared——并可选支持 Token 或 OAuth2 认证。新建订阅从最早的消息开始消费(既有积压会被读取,与 Kafka 输入的默认语义一致);即使 broker 停止投递新消息,消息确认(ack)也能在有界时间内完成。作为通道型输入,它遵循引擎的取消安全契约:取消一次未完成的 read 不会丢失已解码的消息(参见输入投递语义)。

配置​

FieldTypeRequiredDefault描述
typestringyes—常量值 "pulsar"
service_urlstringyes—Pulsar 服务 URL,如 pulsar://host:6650 或 pulsar+ssl://host:6651;多个集群 URL 以逗号分隔
topicstringyes—主题,如 persistent://tenant/namespace/topic 或短名称
subscription_namestringyes—订阅名称
subscription_typestringno"exclusive"订阅类型: exclusive / shared / failover / key_shared
authobjectno—认证配置,见下表(带标签的枚举)
retry_configobjectno—重试配置,见下表

auth​

auth 是一个带标签的枚举(tagged enum,通过 type 字段区分),有两种互斥的形式:

FieldTypeRequired描述
typestringyes"token" 或 "o_auth2"
tokenstringyes (token)Token 字符串
issuer_urlstringyes (o_auth2)OAuth2 issuer URL
credentials_urlstringyes (o_auth2)OAuth2 凭证 URL
audiencestringyes (o_auth2)OAuth2 audience

retry_config​

FieldTypeRequiredDefault描述
max_attemptsintegeryes—最大重试次数
initial_delay_msintegeryes—初始退避延迟(毫秒)
max_delay_msintegeryes—最大退避延迟(毫秒)
backoff_multipliernumberyes—指数退避乘数

示例​

input:
type: "pulsar"
service_url: "pulsar://localhost:6650"
topic: "my-namespace/my-topic"
subscription_name: "my-subscription"
input:
type: "pulsar"
service_url: "pulsar://pulsar-cluster:6650"
topic: "persistent://my-tenant/my-ns/events"
subscription_name: "consumer-group-1"
subscription_type: "shared"
input:
type: "pulsar"
service_url: "pulsar+ssl://secure-pulsar:6651"
topic: "secure-topic"
subscription_name: "secure-subscription"
auth:
type: "token"
token: "${PULSAR_TOKEN}"
input:
type: "pulsar"
service_url: "pulsar+ssl://pulsar.cloud:6651"
topic: "cloud-topic"
subscription_name: "oauth-subscription"
auth:
type: "o_auth2"
issuer_url: "https://auth.example.com"
credentials_url: "https://auth.example.com/credentials.json"
audience: "pulsar-cluster"

说明​

  • 元数据:__meta_topic、__meta_message_id、__meta_publish_time、__meta_ingest_time。
  • 订阅类型:exclusive(单消费者,有序)、shared(轮询分发,无序)、failover(主备,有序)、key_shared(按键路由,同一键内有序)。