首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NServiceBus: saga如何与SQL持久化程序并发?

NServiceBus: saga如何与SQL持久化程序并发?
EN

Stack Overflow用户
提问于 2021-05-27 09:38:45
回答 1查看 194关注 0票数 0

我将NServiceBus与Server和MSSQL结合使用。

我希望确保在高并发情况下不会在数据库中获得无效数据。

文档中,我知道since使用了自4.1.1版本以来的悲观并发。但我不确定它是如何工作的,因为在"启动Saga“和"对Saga状态的更改”下只提到了乐观并发。

每个传奇实例一次只处理一条消息,其余的消息都在队列中等待由佐贺处理吗?

另外,是否可以将并发配置为使用乐观并发而不是SQL持久化程序的悲观并发?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-01 07:03:19

乐观并发控制和悲观锁定都会导致saga实例只能处理1条消息。

可以使用以下方法处理多条消息:

  • 乐观并发控制: 2nd+编写器将失败,消息将被重试。
  • 锁定: THe锁确保同一个saga实例上的多条消息将被延迟。有时,由于锁升级,这可能导致死锁,然后将重新尝试消息。

对于悲观主义者和乐观者,你不能选择。最新版本使用悲观锁定。请参阅https://docs.particular.net/persistence/sql/saga-concurrency

从4.1.1版本开始不会发生冲突,因为持久性使用悲观锁定。悲观锁定是通过执行选择.用于更新或其方言特定的等价物。 在更新或删除saga数据时,SQL持久性使用乐观并发控制,包括4.1版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67719545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档