【发布时间】:2019-01-18 05:14:34
【问题描述】:
我们正在跨多个服务器部署聊天机器人。如果用户发送 2 条消息到达不同的服务器,我想确保消息按顺序处理,一次处理一条。在 V3 中,我能够实现一个自定义的 IScope 类来支持这种行为,由 Redis 和 RedLock.net 提供支持。这在 V4 中是如何工作的?
【问题讨论】:
标签: botframework
我们正在跨多个服务器部署聊天机器人。如果用户发送 2 条消息到达不同的服务器,我想确保消息按顺序处理,一次处理一条。在 V3 中,我能够实现一个自定义的 IScope 类来支持这种行为,由 Redis 和 RedLock.net 提供支持。这在 V4 中是如何工作的?
【问题讨论】:
标签: botframework
dotnet Bot Builder SDK V4 不提供在内部启用悲观锁定或确保消息按顺序处理的机制。但是,您很可能可以在 V4 机器人的 OnTurn 中使用您的 Redis 租约实现。
我们确实在此处提供了一个横向扩展示例:42. Scale Out 但是,它使用 ETag 乐观锁定策略,不能确保消息处理顺序。
另一种选择可能是在机器人前面使用带有Queue Based Load Leveling 策略的服务总线。
【讨论】: