NATS Streaming

NATS Streaming pubsub 组件详细文档

配置

要设置NATS Streaming pubsub,请创建类型为 pubsub.natsstreaming 的组件。 请参阅本指南,了解如何创建和应用 pubsub 配置。

  1. apiVersion: dapr.io/v1alpha1
  2. kind: Component
  3. metadata:
  4. name: natsstreaming-pubsub
  5. namespace: default
  6. spec:
  7. type: pubsub.natsstreaming
  8. version: v1
  9. metadata:
  10. - name: natsURL
  11. value: "nats://localhost:4222"
  12. - name: natsStreamingClusterID
  13. value: "clusterId"
  14. # below are subscription configuration.
  15. - name: subscriptionType
  16. value: <REPLACE-WITH-SUBSCRIPTION-TYPE> # Required. Allowed values: topic, queue.
  17. - name: ackWaitTime
  18. value: "" # Optional.
  19. - name: maxInFlight
  20. value: "" # Optional.
  21. - name: durableSubscriptionName
  22. value: "" # Optional.
  23. # following subscription options - only one can be used
  24. - name: deliverNew
  25. value: <bool>
  26. - name: startAtSequence
  27. value: 1
  28. - name: startWithLastReceived
  29. value: false
  30. - name: deliverAll
  31. value: false
  32. - name: startAtTimeDelta
  33. value: ""
  34. - name: startAtTime
  35. value: ""
  36. - name: startAtTimeFormat
  37. value: ""

Warning

以上示例将 Secret 明文存储。 更推荐的方式是使用 Secret 组件, 这里

元数据字段规范

字段必填详情示例
natsURLYNATS 服务器地址 URLnats://localhost:4222
natsStreamingClusterIDYNATS cluster ID“clusterId”
subscriptionTypeY订阅类型, 订阅类型, 允许的值“topic”“queue”“topic”
ackWaitTimeN这里“300ms”
maxInFlightN这里“25”
durableSubscriptionNameN持久订阅识别名称“my-durable”
deliverNewN订阅策略: 只能使用一个, 订阅策略: 只能使用一个, 只发送新消息“true”, “false”
startAtSequenceN订阅策略: 只能使用一个, 设置期望的起始序列位置和状态“100000”, “230420”
startWithLastReceivedN订阅策略: 只能使用一个, 将起始位置设置为最后接收的位置“true”, “false”
deliverAllN订阅策略: 只能使用一个, 传递所有可用消息“true”, “false”
startAtTimeDeltaN订阅策略: 只能使用一个, 使用增量设置所需的起始时间位置和状态“10m”, “23s”
startAtTimeN订阅策略: 只能使用一个, 设置所需的起始时间位置和状态“Feb 3, 2013 at 7:54pm (PST)”
startAtTimeDeltaN必须与startAtTime一起使用, 设置时间的格式 设置时间的格式“Jan 2, 2006 at 3:04pm (MST)”

创建NATS服务器

您可以在本地使用 Docker运行NATS 服务器:

  1. docker run -d --name nats-streaming -p 4222:4222 -p 8222:8222 nats-streaming

然后,您可以使用 localhost:4222 与服务器进行交互。

使用 kubectl 在 Kubernetes 上安装 NATS:

  1. # Single server NATS
  2. kubectl apply -f https://raw.githubusercontent.com/nats-io/k8s/master/nats-server/single-server-nats.yml
  3. kubectl apply -f https://raw.githubusercontent.com/nats-io/k8s/master/nats-streaming-server/single-server-stan.yml

这将单个NATS-Streaming和Nats安装到default命名空间。 要与NATS进行交互,请使用以下方法找到服务:kubectl get svc stan.

例如,如果使用上面的例子安装, NATS Streaming地址是:

<YOUR-HOST>:4222

相关链接