C# NServiceBus:saga与SQL persister的并发性是如何工作的?
我正在使用带有SQL持久性和MSSQL服务器的NServiceBus 我希望确保在高并发情况下不会在数据库中获取无效数据 从中我知道,自版本4.1.1以来,SQL持久化程序使用悲观并发。 但我不确定它到底是如何工作的,因为在“”和“”下只提到了乐观并发 是否每个saga实例一次只处理一条消息,而所有剩余的消息都在队列中等待saga处理C# NServiceBus:saga与SQL persister的并发性是如何工作的?,c#,sql-server,.net-core,concurrency,nservicebus,C#,Sql Server,.net Core,Concurrency,Nservicebus,我正在使用带有SQL持久性和MSSQL服务器的NServiceBus 我希望确保在高并发情况下不会在数据库中获取无效数据 从中我知道,自版本4.1.1以来,SQL持久化程序使用悲观并发。 但我不确定它到底是如何工作的,因为在“”和“”下只提到了乐观并发 是否每个saga实例一次只处理一条消息,而所有剩余的消息都在队列中等待saga处理 另外,是否可以将并发配置为使用乐观并发而不是SQL persister的悲观并发?乐观并发控制和悲观锁定都会导致saga实例只能处理1条消息 那么,是否可以使用以
另外,是否可以将并发配置为使用乐观并发而不是SQL persister的悲观并发?乐观并发控制和悲观锁定都会导致saga实例只能处理1条消息 那么,是否可以使用以下方式处理多条消息:
- 乐观并发控制:第二个+写入程序将失败,消息将重试
- 锁定:该锁定确保同一个saga实例上的多条消息将被延迟。有时,这可能会由于锁升级而导致死锁,然后重试消息