部分图片和表述来自dubbo官网
dubbo 概述
背景
这是一个服务端架构发展的路径图
下面我们介绍后面两种,dubbo 正是处于RPC 范畴内的使用。
分布式服务架构
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键。
流动计算架构
当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键。
需求
总结一下几个需求
- 多节点服务端可供调用
- 需要一个服务注册中心,动态地注册和发现服务,使服务的位置透明。并通过在消费方获取服务提供方地址列表,实现软负载均衡和 Failover,降低对 F5 硬件负载均衡器的依赖,也能减少部分成本。
- 跟踪链路,多次调用依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系
- 针对不同的机器分配不同的权重
架构
Provider :暴露服务的服务提供方 Consumer :调用远程服务的服务消费方 Registry :服务注册与发现的注册中心 Monitor :统计服务的调用次数和调用时间的监控中心 Container : 服务运行容器
参考资料
- http://dubbo.apache.org/zh-cn/docs/user/demos/fault-tolerent-strategy.html (集群容错)
- http://dubbo.apache.org/zh-cn/docs/user/demos/loadbalance.html