架构一词,通俗的说法是“最高层次的规划,难以改变的决定”,这些规划和决定奠定了事物未来发展的方向和最终的蓝图。


一般来说,除了系统功能需求外,软件架构还要关注性能、可用性、伸缩性、扩展性和安全性这5个架构要素。


谈一下两个容易混淆的概念。伸缩性和扩展性。


伸缩性是指大型网站需要面对大量用户的高并发访问和存储海量数据,不可能只用一台服务器就处理全部用户请求,存储全部数据。网站这集群方式将多台服务器组成一个整体共同提供服务。


所谓伸缩性是指通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力和不断增长的数据存储需求。举例说明,对于应用服务器集群、数据库集群等。


扩展性是直接关注网站的功能需求,比如衡量网站架构性能好坏的主要标准就是在网站增加新的业务产品时,是否可以实现对现有产品透明无影响,不需要任何改动或者很少改动既有业务功能


就可以上线新产品。扩展性的主要手段是事伯驱动架构和分布式服务。事件驱动架构在网站通常利用消息队列实现,将用户请求和其他业务事件构造成消息发布到消息队列,消息处理者作为消费者


从消息队列中获取消息进行处理。通过这种方式将消息和消息处理分享开来,可以透明地增加新的消息生产者任务或者新的消息消费者任务。


分布式服务则是将业务和可复用服务分离开来,通过分布式服务框架调用。新增产品可以通过调用可复用的服务实现自身的业务逻辑,而对现有产品没有任何影响。可复用服务升级变更的时候,也可以通过提供


多版本服务对应用实现透明升级,不需要强制应用同步变更。


【如果文字看累了,可b站搜索“沙皮狗2021”,用听的方式领略知识的魅力】

【​​https://space.bilibili.com/407643589​​】