Dubbo初体验之为什么要使用Dubbo

版权声明: https://blog.csdn.net/Dongguabai/article/details/83547212

为什么要使用Dubbo

一般项目初期的单应用架构如下:

随着用户量的增多,可以增加应用服务器进行负载,短期内可以产生非常大的成效,但是长期来看投入产出比会逐渐的下降。这时候会对服务进行拆分。

各种业务层、服务层之间的调用一定是通过某种远程RPC技术进行调用。这时候就涉及到以下几个问题:

1.地址维护(当服务越来越多时,服务 URL 配置管理变得非常困难);

2.负载均衡(当服务越来越多时,F5 硬件负载均衡器的单点压力也越来越大);

3.限流/容错/降级;

4.链路监控;

如果我们使用比如WebService或者简单的使用Http进行调用是没有办法解决这几个问题的。因为这些技术只能实现一个远程的调用,但是在大规模服务化后很多问题都无法解决。Dubbo就是其中一种解决方案。

1.关于地址服务,这时候需要一个服务注册中心,动态的注册和发现服务,使服务的位置透明;

2. 通过在消费方获取服务提供方地址列表,实现软负载均衡和 Failover,降低对 F5 硬件负载均衡器的依赖,也能减少部分成本。 

3.当进一步发展,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。 这时需要自动画出应用间的依赖关系图,以帮助架构师理清理关系。 

4.服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器? 

为了解决这些问题,第一步,要将服务现在每天的调用量,响应时间,都统计出来,作为容量规划的参考指标。 其次,要可以动态调整权重,在线上,将某台机器的权重一直加大,并在加大的过程中记录响应时间的变化,直到响应时间到达阀值,记录此时的访问量,再以此访问量乘以机器数反推总容量。 

猜你喜欢

转载自blog.csdn.net/Dongguabai/article/details/83547212