网站的可扩展架构

1、利用分布式消息队列降低系统耦合性

(1)事件驱动架构

事件驱动架构:通过在低耦合的模块之间传输事件消息,以保持模块的松散耦合,并借助事件消息的通信完成模块间合作。


消息队里利用发布-订阅模式工作,消息发送者发布消息,一个或者多个消息接收者订阅消息。

a、分布式消息队列

队列是一种先进先出的数据结构,分布式消息队列可以看作将这种数据结构部署到独立的服务器上,应用程序可以通过远程访问接口使用分布式消息队列,进行消息存取操作,进而实现分布式的异步调用。基本原理如下:


消息生产者应用程序通过远程访问接口将消息推送给消息队列服务器,消息队列服务器将消息写入本地内存队列后立即返回成功响应给消息生产者。消息队列服务器根据消息订阅列表查找订阅该消息的消息消费者应用程序,将消息队列中的消息按照先进先出的原则将消息通过远程通信接口发送给消息消费者程序。

2、分布式服务框架设计

大型网站需要更简单更高效的分布式服务框架构建其SOA(service Oriented Architecture面向服务的体系架构)。聚成Facebook利用Thrift(一个开源的远程服务调用框架)管理其分布式服务,服务的注册、发现以及调用都通过Thrift完成,但对于一个大型网站可以使用的分布式服务框架,仅有Thrift还远远不够。

目前成功的开源分布式服务框架是阿里巴巴的Dubbo。


服务消费者程序通过服务接口使用服务,而服务接口通过代理加载具体服务,具体服务可以是本地的代码模块,也可以是远程服务,因此对应较少侵入:应用程序只需要调用服务接口,服务框架根据配置自动调用本地或者远程实现。


服务框架客户端模块通过服务注册中心加载服务提供者列表(服务提供者启动后自动向服务注册中心注册自己可提供的服务接口列表),查找需要的服务接口,并根据配置的负载均衡策略将服务调用请求发送到某服务提供者服务器,如果服务调用失败,客户端模块会自动从服务提供者列表选择一个可提供同样服务的另一台服务器重新请求服务,实现服务的自动失效转移,保证服务高可用。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值