我们有许多不同的老式客户端-服务器 C# WinForm 客户端应用程序,它们本质上是数据库的前端。然后有一个 C# 服务器端 Windows 服务等待客户端应用程序提交订单,然后处理它们。
服务器端服务确定是否有工作要做的方式是轮询数据库。多年来,由于无数的业务规则,轮询等待订单的逻辑变得更加复杂。因此,即使无事可做,轮询存储过程本身也会使用相当多的 SQL Server 资源。再加上订单在提交的那一刻就被处理的要求,并且您遇到了性能问题,因为数据库正在不断地被轮询。
该设置现在实际上工作正常,但负载即将通过屋顶,很明显,它无法承受。
在一堆不同的客户端应用程序和服务器端 Windows 服务之间进行通信的一些有效方法是什么,它们比当前方法更具前瞻性?
数据库服务器是 SQL Server 2005。如果它真的涉及到最新的 SQL Server,我可能有能力购买最新的 SQL Server,但我宁愿不打那场战斗。