作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当前部署到 Azure 容器应用的服务,它们通过 Azure 服务总线进行通信
在通信过程中,服务将发送 4000 条消息,由于数据库与数据库的最大连接数(200),某些消息会抛出错误,因此必须重试消息,但问题是,在消息发送之前没有退避时间消息会被重试,因此大多数消息在达到 maxDeliveryCount
后最终会进入死信队列。
Dapr 组件规范上是否有像 backOffInitialInterval
这样的元数据字段来设置重新发送消息之前等待的时间?
下面是我的二头肌文件
resource daprComponent 'daprComponents@2022-03-01' = {
name: 'ifms-dapr-pubsub'
properties: {
componentType: 'pubsub.azure.servicebus'
version: 'v1'
secrets: [
{
name: 'service-bus-connection-string'
value: 'Endpoint=sb://${serviceBusName}.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=${listKeys('${serviceBusId}/AuthorizationRules/RootManageSharedAccessKey', serviceBusApiVersion).primaryKey}'
}
]
metadata: [
{
name: 'connectionString'
secretRef: 'service-bus-connection-string'
}
{
name: 'maxDeliveryCount'
value: '1000'
}
]
}
}
来自 link客户端库的 ServiceBusRetryOptions
中有一个 Mode
和 Delay
最佳答案
要设置重试策略的初始退避间隔,您可以将 metadata
字段添加到您的 daprComponent
资源,名称为 retryOptions
以及包含模式和延迟属性的值。
例如,您可以设置回退重试策略,以指数方式扩展延迟,从 5
秒的值开始,如下所示:
metadata: [
{
name: 'connectionString',
secretRef: 'service-bus-connection-string',
},
{
name: 'maxDeliveryCount',
value: '1000',
},
{
name: 'retryOptions',
value: json({
mode: 'exponential',
delay: '00:00:05',
}),
},
],
关于azure - Dapr 重试的指数退避 (AzureServiceBus),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75716321/
我试图了解 Spring WebClient Retry.backoff 方法的指数退避策略的默认乘数。并且这个可以配置吗?我找不到这方面的文档。 https://projectreactor.io/
我是一名优秀的程序员,十分优秀!