关于三个9可用性的信息
本文关键字:信息 可用性 于三个 | 更新日期: 2023-09-27 18:12:31
我要开发一个高可用的WCF服务,它应该为客户端提供99.9%的正常运行时间。正如你可能猜到的,我需要尽可能多的信息。所以我知道在这里,在stackoverflow上,有很多专业人士在帮助像我这样的新手:)所以如果你能给我指出一些制作。net WCF服务的好经验,那对我来说就太好了。该服务将与许多地理上远程的数据库一起工作,并将向客户端提供来自这些数据库的数据。任何文章,链接,博客/论坛帖子和个人回忆将非常感激。提前感谢!
不是一个相关的方面,而是几个…有几点需要考虑/记住:
-
冗余
可能是多台机器并行运行服务,可能是一些基于dns的机制,以帮助当一台机器停机/不可达…无论是不同机器的不同物理位置(数据中心),还是不同的主干连接(ISP)……可以是冗余的DB后端(如Oracle RAC设置)等 -
安全
这必须从一开始就成为你设计的一部分……您需要在服务本身(基本的东西,如彻底检查所有传入数据)和运行时环境(如防火墙等)中具有强大的安全性 -
备份
这部分必须经过深思熟虑,并进行最大程度的测试。不同的技术会有所不同,比如你的备份和运行速度等等——有时你需要结合多种技术……再次:测试你最坏的情况 -
监测
为了确定发生了什么并尽早做出反应,你需要一个良好的监控实现……这是从熨斗开始的,一直到服务结束……它不仅应该检查可用性,还应该检查负载等,以及可配置的警报……它也需要考虑到历史……这反过来又给你足够的数据,知道什么时候是高峰时间和/或什么时候增加新的机器等。 -
测试
用任何可用的工具检查你的服务真的很难…无论是内存分析器,还是真实场景的负载测试,甚至是极端场景…… -
可伸缩性
无状态服务通常在可伸缩性方面更好… -
计划
根据我的经验,这非常重要,但通常被遗忘或不更新。制定部署、推出/更新、灾难恢复等计划。最重要的是:彻底测试它们并记录它们!
我建议在负载均衡器后面有多个服务器。
此外,您可能需要另一个地理位置上的远程位置来确保这种正常运行时间。
高可用WCF服务,应为客户端提供99.9%的正常运行时间
Hahahhaahaha。认真。
99.9是"机架中的普通计算机",而不是"高可用性"。请做数学题。99.9%的可用性是每年3.65天的停机时间。如果你有这样的电脑,包括维修在内,我会说一台普通的电脑很烂。
这个级别的可用性是"如果出现故障,在24小时内从戴尔购买一台服务器,并有技术人员在场"。