架构师训练营 - 第四周 - 作业 2
高可用、高性能的系统到底怎么设计?
为什么要设计,先说问题:
互联网系统面临的挑战
互联网系统需要面对高并发的用户访问。
提供7x24小时不间断的高可用服务。
需要存储、管理海量的数据。
用户分布复杂,网络情况复杂。
由于互联网的开放性,更容易受到攻击,安全环境恶劣。
需求变更快,发布频繁。
大型互联网站都是从小的网站,渐进式发展的。
正对问题提出解决:
高可用
当出现服务器宕机,服务或应用仍然可用。
应用冗余,部署在多台服务器上构建集群。
数据冗余,存储在多台服务器上互相备份。
任何一台服务器宕机都不会影响应用的整体可用,也不会导致数据丢失。
可伸缩
不断向集群中加入服务器缓解不断上升的用户并发访问压力和不断增长的数据存储需求。
可容易地向集群中添加新的服务器,并提供与原来的服务器无差别的服务。可容纳总的服务器数量无限制。
可扩展
系统增加新的业务产品时,对现有产品透明无影响,不需要任何改动或很少改动既有业务功能就可以上线新产品。少耦合。
可通过事件驱动架构和分布式服务解决。
安全
针对现存和潜在的各种攻击与窃密手段 ,有可靠的应对策略。
评论