分布式RPC系统框架Dubbo-01Dubbo概述

        Apache Dubbo 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

1.系统架构的发展

        dubbo为分布式而生开源框架,比较流行的说法“如果没有分布式微服务应用,那么就不需要dubbo的存在”,印证了dubbo在分布式无服务环境中的重要性;因此首先要了解一下系统架构的发展历程。

1.1 单体系统架构

        当站点功能与流量都很小时,只需一个应用,将所有功能都集中在一个工程中,并部署在一台服务器上,以减少部署节点和成本。例如,将用户模块、订单模块、支付模块等都做在一个工程中,以一个应用的形式部署在一台服务器上。 

 

1.2 集群架构

        当站点流量增加,单机已无法应对其访问量时,可通过搭建集群,增加主机的方式提升系统的性能,这种方式称为水平扩展。

1.3 分布式架构

        当访问量逐渐增大,集群架构的水平扩展所带来的效率提升越来越小,此时可以将项目拆分成多个功能相对独立的子工程以提升效率,例如用户工程、订单工程、支付工程等,并且将单独的子工程集群化用于发挥最大效率;这种称为垂直扩展。

1.4 微服务架构

        当子工程越来越多时,就会出现多个工程都拥有某些功能相同或相似的模块,于是将这些在整个项目中冗余的功能模块抽取出来作为独立的工程,这些抽取的工程就是专门为那些调用它们的工程服务;那么这些抽取出的功能就称为微服务,(抽取出的工程)微服务应用称为服务提供者,而调用微服务的应用就称为服务消费者

1.5 流动计算架构

        dubbo与spring cloud即为流动计算服务框架。

  • 随着功能的扩张,微服务就需要越来越多;

  • 随着PV的增涨,消费者工程就需要越来越多;

  • 随着消费者的扩张,为其提供服务的提供者服务器就需要越来越多,且每种提供者都要求创建为集群。

1.5.1 注册中心

       持续增大的功能需求与流量,致使消费者对于提供者的访问就不能再采用直连方式(直连方式存在单点问题)进行了,此时就需要服务注册中心;提供者将服务注册到注册中心,而消费者通过注册中心进行消费,消费者无需再与提供者绑定了,提供者的宕机,对消费者不会产生直接的影响。

1.5.2 服务治理

        随着服务的增多,在一些特殊时段(例如双11等因业务及市场因素所出现的流量高峰期)就会出现服务资源浪费的问题:有些服务的QPS很低,但其还占用着很多系统资源,而有些QPS很高,已经出现了资源紧张,用户体验骤降的情况。

        此时就需要服务治理中心,让一些不重要的服务暂时性降级(停止提供服务,例如高峰期不提供用户修改资料、变更信息等功能),或为其分配较低的权重(通过阀值降低部分功能的分配效率)等,对整个系统资源进行统一调配。

资源调配可分为两种:

  • 预调配

    预调配是根据系统架构师的“系统容量预估”所进行的调配,是一种经验,是一种预处理,就像每年双11期间的PV与UV都会很高,就需要提前对各服务性能进行调配。

  • 实时调配

    根据服务监控反应的时候运行即占用情况来即时调整。

1.5.3 服务监控

        服务监控是对系统资源即服务使用情况的即时性反馈,指导实时调配根据服务监控中心所提供的基于访问压力的实时系统容量评估数据,对各服务性能进行实时调配的方案。

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值