C#2008
我开发了一个需要连接到Web服务器才能工作的应用程序。如果Web服务器脱机。必须通知应用程序,以便使用该应用程序的用户可以知道发生了什么。
此应用程序将从我们的客户网站从互联网上下载。因此,成百上千的用户可以拥有它。
我在考虑每隔5秒ping一次网络服务器。但是,使用100或1000的应用程序会使Web服务器过载。
有人告诉我ESB适合这个问题。我想用这个的方式,我并不完全确定。是让每个应用程序订阅ESB。如果Web服务器脱机,它将向所有应用程序发送消息。
但是,据我所知,ESB非常庞大而复杂,可能这对我的问题来说太过分了。
我理解正确吗?
如果ESB不是正确的选择,我可以使用另一种设计模式吗?
非常感谢
答案 0 :(得分:2)
为了这个简单的目的,为ESB规范听起来不合适。为什么不让客户端计算机弄清楚它们是否经常需要访问网站?在正常活动过程中,他们不需要反复ping网络服务器,他们需要出于任何正常原因访问Web服务器,如果他们得到错误响应,他们可以分支“Web服务器已关闭”代码路径。
答案 1 :(得分:2)
ESB听起来像是错误的解决方案。
有两种可能性浮现在脑海中:
(1)如果用户不需要知道他们实时脱机,请在尝试访问服务器时将检测推迟到通常的错误处理。
(2)如果您必须知道实时,请在每个客户端站点使用一个小代理,以便只有代理需要ping您的服务器,而不是每个桌面。