.net 在应用程序服务器之间同步服务状态

.net 在应用程序服务器之间同步服务状态,.net,windows-services,scalability,synchronize,.net,Windows Services,Scalability,Synchronize,假设我们有N个在C/.NET中开发的相同windows服务同时在N个应用服务器上运行。”不幸的是,每个服务都有自己的内存状态,比如说,在晚上10:00我需要执行一个作业 通过前端web UI,用户可以更改其中一项服务的状态,例如,将作业开始时间从10更改为12 我的问题:在用户更改状态后,同步这些服务之间的状态的最佳实践是什么?最好是在.NET平台上 p、 你可能想知道为什么我们要在不同的服务器上运行相同的服务。这是因为管理者认为冗余可以防止单点故障。但当服务实例拥有自己的内存状态时,它也会带来

假设我们有N个在C/.NET中开发的相同windows服务同时在N个应用服务器上运行。”不幸的是,每个服务都有自己的内存状态,比如说,在晚上10:00我需要执行一个作业

通过前端web UI,用户可以更改其中一项服务的状态,例如,将作业开始时间从10更改为12

我的问题:在用户更改状态后,同步这些服务之间的状态的最佳实践是什么?最好是在.NET平台上

p、 你可能想知道为什么我们要在不同的服务器上运行相同的服务。这是因为管理者认为冗余可以防止单点故障。但当服务实例拥有自己的内存状态时,它也会带来上述问题,用户可以通过UI更改这些状态


这里的任何建议都将不胜感激

听起来像是在使用本地服务状态作为每个服务实例的主要配置/设置等。因为您希望它们保持同步,这意味着更新每个操作实例

我可以想出很多方法来解决这个问题,但根据您提供的信息,我会选择集中配置更新轮询:

用于配置/设置(如作业时间)的中央数据库。 初始化时,从中央数据库读取所有服务,以获取设置/配置,并将它们以状态应用于服务实例。 管理员界面只是将数据保存到配置/设置数据库中。 所有服务定期从数据库查询更新,并相应地应用。 这是一个简单的分布式结构,使每个服务负责获取其设置以操作拉模型,并且比向每个服务实例推模型发出通知更易于管理。它的另一个好处是允许您以后添加更多服务器和服务实例,而无需更改应用程序代码或修改任何配置信息