The documentation you are viewing is for Dapr v1.12 which is an older version of Dapr. For up-to-date documentation, see the latest version.
Azure Service Bus
配置
若要安装 Azure Service Bus pubsub,请创建一个类型为 pubsub.azure.servicebus
的组件。 请参阅本指南,了解如何创建和应用 pubsub 配置。
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: servicebus-pubsub
namespace: default
spec:
type: pubsub.azure.servicebus
version: v1
metadata:
- name: connectionString # Required
value: "Endpoint=sb://{ServiceBusNamespace}.servicebus.windows.net/;SharedAccessKeyName={PolicyName};SharedAccessKey={Key};EntityPath={ServiceBus}"
# - name: timeoutInSec # Optional
# value: 60
# - name: handlerTimeoutInSec # Optional
# value: 60
# - name: disableEntityManagement # Optional
# value: "false"
# - name: maxDeliveryCount # Optional
# value: 3
# - name: lockDurationInSec # Optional
# value: 60
# - name: lockRenewalInSec # Optional
# value: 20
# - name: maxActiveMessages # Optional
# value: 2000
# - name: maxActiveMessagesRecoveryInSec # Optional
# value: 2
# - name: maxConcurrentHandlers # Optional
# value: 10
# - name: prefetchCount # Optional
# value: 5
# - name: defaultMessageTimeToLiveInSec # Optional
# value: 10
# - name: autoDeleteOnIdleInSec # Optional
# value: 3600
# - name: maxReconnectionAttempts # Optional
# value: 30
# - name: connectionRecoveryInSec # Optional
# value: 2
# - name: publishMaxRetries # Optional
# value: 5
# - name: publishInitialRetryInternalInMs # Optional
# value: 500
__注意:__上述设置在使用该组件的所有主题中是通用的。
Warning
以上示例将密钥明文存储, 更推荐的方式是使用 Secret 组件, 这里。元数据字段规范
字段 | 必填 | 详情 | 示例 |
---|---|---|---|
connectionString | 是 | 服务总线共享访问策略连接字符串 | “Endpoint=sb://{ServiceBusNamespace}.servicebus.windows.net/;SharedAccessKeyName={PolicyName};SharedAccessKey={Key};EntityPath={ServiceBus} ” |
timeoutInSec | 否 | 发送消息和其他管理操作的超时时间。 默认值:60 |
30 |
handlerTimeoutInSec | 否 | 调用应用handler的超时。 # 可选的。 默认值:60 |
30 |
disableEntityManagement | 否 | 设置为 “true “时,主题和订阅不会自动创建。 默认值为 "false" |
"true" , "false" |
maxDeliveryCount | 否 | 定义服务器发送消息的尝试次数。 由服务端默认设置 | 10 |
lockDurationInSec | 否 | 定义消息过期前被锁定的时长,以秒为单位。 由服务端默认设置 | 30 |
lockRenewalInSec | 否 | 定义缓冲消息锁的更新频率。 默认值:20 . |
20 |
maxActiveMessages | 否 | 定义一次要缓冲或处理的消息的最大数量。 默认值:10000 |
2000 |
maxActiveMessagesRecoveryInSec | 否 | 定义达到最大活跃消息限制后等待的时长(秒) 默认值:2 默认值:2 |
10 |
maxConcurrentHandlers | 否 | 定义并发消息处理器的最大数量 | 10 |
prefetchCount | 否 | 定义预取消息的数量(用于高吞吐量/低延迟场景) | 5 |
defaultMessageTimeToLiveInSec | 否 | 默认消息存活时间 | 10 |
autoDeleteOnIdleInSec | 否 | 在自动删除空闲订阅之前等待的时间(以秒为单位)。 | 3600 |
maxReconnectionAttempts | 否 | 定义重新连接尝试的最大次数。 默认值:30 |
30 |
connectionRecoveryInSec | 否 | 连接恢复尝试之间的等待时间(以秒为单位)。 默认值:2 |
2 |
publishMaxRetries | 否 | Azure Service Bus 以"过于忙碌"为响应以限制消息时的最大重试次数。 默认值:5 |
5 |
publishInitialRetryInternalInMs | 否 | Azure Service Bus 限制消息时初始指数退避的时间(以毫秒为单位)。 默认值:500 |
500 |
Azure Active Directory (AAD) 认证
Azure 服务总线 pubsub 组件支持使用所有 Azure Active Directory 机制进行身份验证。 更多信息和相关组件的元数据字段根据选择的AAD认证机制,参考Azure认证文档。
消息元数据
Azure Service Bus 消息使用其他上下文元数据扩展 Dapr 消息格式。 某些元数据字段由Azure Service Bus 本身设置(只读),其他元数据字段可由客户端在发布消息时设置。
发送带元数据的消息
若要在发送消息时设置 Azure Service Bus 元数据,请在 HTTP 请求或 gRPC 元数据上设置查询参数,如此处所述。
metadata.MessageId
metadata.CorrelationId
metadata.SessionId
metadata.Label
metadata.ReplyTo
metadata.PartitionKey
metadata.To
metadata.ContentType
metadata.ScheduledEnqueueTimeUtc
metadata.ReplyToSessionId
注意:
metadata.MessageId
属性没有设置云端事件的id
属性,应该单独处理。
接收带元数据的消息
当 Dapr 调用应用程序时,它将使用 HTTP 标头或 gRPC 元数据将 Azure Service Bus 消息元数据附加到请求。 除了上面列出的 可设置元数据之外,您还可以访问以下只读消息元数据。
metadata.DeliveryCount
metadata.LockedUntilUtc
metadata.LockToken
metadata.EnqueuedTimeUtc
metadata.SequenceNumber
若要了解有关任何这些元数据属性的用途的更多详细信息,请参阅 官方 Azure Service Bus 文档。
创建Azure Service Bus
请按照此处的说明设置Azure Service Bus Topics。
相关链接
- Dapr组件的基本格式
- 发布/订阅构建块
- 阅读 本指南,了解配置 发布/订阅组件的说明
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.