大型网站核心架构中的"扩展性"设计方法
网站的架构如何能够快速响应需求变化,是可扩展架构的主要目的:
不同于其它要素的,扩展性主要关注网站的功能需求;(其它要素都是非功能要素)
判断好坏的标准
网站新增新的业务产品时候,是否可以实现对现有产品透明无影响;不需要任何改动或者很少改动既有业务功能就可以上线新的产品;
主要手段
- 事件驱动架构
- 分布式服务
事件驱动架构
事件驱动通常就是利用消息队列实现
将请求和业务事件狗造成消息发布到"消息队列",消息的处理者作为消费者从消息队列中获取消息进行处理;
这样方式可以将消息产生和处理分离开来,
可以透明的增加新的消息生产者任务或者新的消息消费者任务;
分布式服务
将业务和可复用服务器分离开来,通过分布式服务框架调用;新增产品可以通过调用可复用的服务实现自身的业务逻辑,而怼现有产品没有任何影响;
可复用服务升级变更的时候,可以通过提供多版本服务对应用实现透明升级,不需要强制应用同步变更;
开放平台接口
吸引第三方开发者,调用网站服务,使用网站数据开发周边产品,扩展网站业务;