网站的可扩展架构(扩展性)

伸缩性:通常指利用集群的方式增加服务器数量、提高系统的整体事务吞吐能力。
扩展性:指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力。

网站的可扩展性,依托于系统的耦合度。低耦合的系统更容易扩展,低耦合的模块更容易复用,
一个低耦合的系统设计也会让开发过程和维护变得更加轻松和容易管理。

软件架构师最大的价值不在于掌握多少先进的技术,而在于具有将一个大系统切分成N个低耦合的子模块的能力,这些子模块包含
横向的业务模块,也包含纵向的基础技术模块。

a.通过分布式消息队列的方式到达模块之间松散耦合的目的。

大型网站之扩展篇_API

b.分布式服务是降低系统耦合性的另一个方式。
分布式服务主流的解决方案有Dubbo和SpringCloud.

c.利用开放平台建设网站生态圈

大型网站之扩展篇_API_02


OpenAPI:是开放平台暴露开发者使用的一组API,其形式可以是RESTFUL、WerService、RPC等各种形式。

协议转换:将各种API输入转换成内部服务可以识别的形式,并将内部服务的返回封装成API的格式。

安全:除了一般应用需要的身份识别、权限管理等手段,开发平台还需要分级的访问带宽限制,保证第三方调用不会影响自己核心业务。

审计:记录第三方应用的访问情况,并进行监控、计费等。

路由:将开发平台的各种访问路由映射到具体的内部服务。

流程:将一组离散的服务组成一个上下文相关的新服务,隐藏服务细节,提供统一接口提供开发者调用。

大型网站之扩展篇_低耦合_03