【夯实Dubbo】Dubbo的核心特性

本文属于【夯实Dubbo】系列文章,该系列旨在用通俗易懂的语言,带大家了解和学习 Dubbo 技术,希望能给读者带来一些干货。系列目录如下(可能随着写作的进行,会做一些调整):

【夯实Dubbo】什么是 RPC 框架?
【夯实Dubbo】Dubbo 的核心特性
【夯实Dubbo】Dubbo 架构和 zookeeper 注册中心的搭建和配置
【夯实Dubbo】Dubbo 和 Spring Boot 整合完成服务注册
【夯实Dubbo】Dubbo 的配置总结
【夯实Dubbo】Dubbo 的负载均衡设置
【夯实Dubbo】Dubbo 的服务熔断和降级处理
【夯实Dubbo】Dubbo 的核心原理

Dubbo 是阿里的一款高性能 RPC 框架,后来贡献给了 Apache,Dubbo 还有个很棒的地方就是他有很完善的中文官网,这可能是很多开发者最喜欢的地方。官网访问地址:http://dubbo.apache.org/zh-cn/

里面有很全的文档,有社区,还是挺不错的。先来看看 Dubbo 都有哪些特性,借用官网上的图:

Dubbo的特性
针对这几个特性,先简单介绍一下,具体的实现我会在后面的文章中详细给大家分享出来。

面向接口代理的高性能RPC调用

这是什么意思呢?上一节我跟大家提到过,RPC 主要解决远程调用问题,让用户无感知。那么具体如何做到呢?比如现在 A 服务要调用 B 服务的接口。那么只要在 A 服务里面调用一下 B 服务的接口对应的方法即可,Dubbo 会自动去找 B 服务器中对应接口的方法,帮我们调用,为我们屏蔽了远程的调用细节。

这就跟我们使用 Mybatis 有点类似,我们只要写 mapper 接口即可,具体的查询细节我们不用管了。

智能负载均衡

假设订单服务随着应用的扩展,访问量越来越大,一台服务器不够用了,那就得多放几台服务器,来跑订单服务。那么问题来了,我客户端调用的时候,到底是调哪台服务器来获取数据呢?这时候就需要看哪台服务器比较空闲了,然后去处理一下该请求。这种策略就是负载均衡。不能让某台服务器太忙,也不能让某台服务器太闲。

服务注册与发现

服务注册与发现和我之前写的 Spring Cloud 是类似的,比如现在有很多服务:用户业务的、订单服务、支付服务等等,每个服务可能有好多个服务器。那假如客户端调用订单服务的时候,那么 Dubbo 怎么知道订单服务都在哪些服务器上呢?还有一点,如果某个订单服务的机器有问题了,那么 Dubbo 如何发现这个问题等等。这就引入了注册中心的概念,为了能感知到所有的服务,那么可以将所有的服务都注册到这个注册中心里,统一管理。

运行期流量调度

Dubbo 通过配置路由策略,可以实现灰度发布,什么是灰度发布呢?比如现在某个服务有100台服务器,现在有新功能上线了,我可以让10台服务器先用这新的功能,剩下的还用老的服务,等觉得稳定了,我再选一些服务器上新的功能等等。通过配置路由,可以让一部分请求到新的服务上去,这就是灰度发布,可以通过路由策略来控制。

可视化的服务治理和运维

我们可以通过可视化页面来实时查询一些服务的状态,包括基本信息、健康状况等等,也可以去调节等等。这样可以很方便的来监控和运维,后面会跟大家介绍。

扫描二维码关注公众号,回复: 8792112 查看本文章

OK,这一篇文章主要结合官方页面来跟大家分享一下 Dubbo 的几个核心的特性,具体的细节和实现,我会在后面的文章继续跟大家分享交流。


扫描下方二维码关注我的公众号,回复 “Dubbo” 即可获取 Dubbo 的视频学习教程。
注:视频供大家学习使用,严禁用于商业用途。

程序员私房菜

发布了227 篇原创文章 · 获赞 4625 · 访问量 262万+

猜你喜欢

转载自blog.csdn.net/eson_15/article/details/90726903