我有一个由 8 个服务器组成的分布式应用程序,所有服务器都运行 .NET windows 服务。每个服务都会轮询数据库中可用的工作包。
由于其他原因,轮询机制很重要(现在太无聊了)。
我认为这种轮询机制最好在队列中实现,因为 .NET 服务都将定期轮询数据库,并且在负载下我不想要死锁。
我想我希望每个 .NET 服务都将消息放入输入队列。数据库服务器将一次弹出输入队列中的每条消息,对其进行处理,然后将回复消息放在另一个队列中。
我遇到的问题是 SQL Server Broker (SSB) 的大多数示例都在数据库服务之间,而不是从 .NET 客户端启动。我想知道 SQL Server Broker 是否只是这项工作的错误工具。我看到代理 T-SQL DML 可从 .NET 获得,但我认为这应该工作的方式似乎不适合 SSB。
我认为我需要一个带有 2 个队列(进出)和一个激活存储过程的单一 SSB 服务。
这似乎不是 SSB 的工作方式,我错过了什么吗?