Dubbo是什么?
Dubbo是一种高性能的开源分布式服务框架,最初由阿里巴巴集团开发并开源,提供了一些常用的分布式系统开发的核心功能和通用组件。
为什么需要Dubbo?
比如早期一个应用Java War包,将所有功能都打包,部署在一个单机服务器,调用接口也比较方便,不涉及到任何分布式场景。

随着业务的快速发展,业务越来越多、子系统也越来越多时。比如:淘宝的交易系统、商品系统、用户系统、评价系统…上百个系统的出现。
系统变得越来越复杂,业务代码依然耦合在一起。比如最早期的淘宝denali工程,包含所有业务系统的代码,就仅打包部署都需要很长的时间。
并且,随着每个业务线的快速发展,业务代码耦合在一起,上线后出现问题急需要回滚代码,拉分支、大量的代码merge工作,这个过程极其痛苦。
这个时候,你会发现技术已经成了业务的瓶颈,急需把业务单独抽离出来,各自单独部署。
应用系统一旦涉及到拆分部署,问题就来了,急需一种高效的应用程序间的通讯手段来完成这种需求,这就会涉及到分布式远程调用。

所以,RPC的框架来了,比如:Dubbo为代表的分布式远程通信RPC框架。
Dubbo能做什么?
Dubbo作为一个分布式服务框架,可以实现以下功能:
1.远程服务调用
Dubbo提供透明化的远程过程调用(RPC)方式,使得开发人员可以像调用本地方法一样调用远程服务。这使得系统之间的服务调用更加简单和方便。
2.负载均衡和容错
Dubbo内置了多种负载均衡算法,可以根据不同的业务场景选择合适的负载均衡策略,如随机、轮询、最少活跃调用等。
同时,Dubbo也提供了容错机制,可以根据需求进行失败重试、快速失败、失败安全等处理,保证系统的高可用性和容错性。
3.服务注册与发现
Dubbo提供了服务注册与发现的功能,服务提供者可以将自己提供的服务注册到注册中心,而服务消费者可以从注册中心获取到可用的服务列表。
这样,服务提供者和消费者可以动态地进行服务的发现和绑定,实现灵活的服务调用。
4.动态配置
Dubbo支持动态配置,可以在运行时对服务的配置进行调整,如修改服务的超时时间、权重、路由规则等。
这使得系统可以根据实际需求进行动态调整和优化,而无需重启服务。
5.性能监控
Dubbo提供了丰富的性能监控和统计功能,可以监控服务的调用次数、响应时间、成功率等指标,帮助开发人员了解系统的性能状况,及时发现和解决问题。
mikechen
mikechen睿哥,10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获知最新一线技术干货!
