本文属于【夯实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 都有哪些特性,借用官网上的图:


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

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

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

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

智能负载均衡

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

服务注册与发现

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

运行期流量调度

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

可视化的服务治理和运维

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

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


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

【夯实Dubbo】Dubbo的核心特性相关推荐

  1. Dubbo 2.7三大特性详解

    1 背景介绍 自 2017 年 7 月阿里重启 Dubbo 开源,到目前为止 github star 数,contributor 数都有了非常大的提升.2018 年 2 月 9 日阿里决定将 Dubb ...

  2. Dubbo -- Dubbo快速入门代码编写

    文章目录 1. Dubbo快速入门代码编写 1.1 需求分析 1.2 项目和模块创建 1.3 导入相关依赖 1.4 编写提供服务的接口 1.5 编写调用服务的程序 1.6 安装dubbo-servic ...

  3. Failed to read schema document ‘http://code.alibabatech.com/schema/dubbo/dubbo.xsd‘问题解决方法

    Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法 参考文章: (1)F ...

  4. Dubbo——Dubbo协议整合Jackson序列化解决方案

    环境配置 spring boot 2.6.3 spring cloud 2021.0.1 spring cloud alibaba 2021.0.1.0 nacos server 2.0.4 dubb ...

  5. optional判断是否为空_乐字节Java8核心特性之Optional

    小伙伴们,上次小乐给大家详细介绍了Java8核心特性的Stream(流),点击可以回顾哦. 乐字节:乐字节Java8核心特性实战-Stream流​zhuanlan.zhihu.com Optional ...

  6. Python 30年,你对它的核心特性了解多少?

    1991 年,吉多·范罗苏姆(Guido van Rossum)通过 alt.sources 新闻组向世界发布了 Python.并在 2月 20 日那天,发布了 Python 0.9 代码. 如今,3 ...

  7. 特性总览:核心特性、数据存储、Web技术、框架整合与测试

    Spring的事件是基于Java的标准事件进行扩展的,但与Java的标准事件会有一些区别 资源管理也是继承了Java的资源管理,它的有些API是借鉴了Java核心的底层API的实现 Java默认就支持 ...

  8. go interface类型转换_Go语言的九大核心特性主要有哪些?

    Go语言之所以厉害,是因为它在服务端的开发中,总能抓住程序员的痛点,以最直接.简单.高效.稳定的方式来解决问题.这里给大家讲解一下Go的核心特性. 并发编程 Go语言在并发编程方面比绝大多数语言要简洁 ...

  9. 大漠穷秋:全面解读Angular 4.0核心特性

    内容来源:2017年5月14日,大漠穷秋在"OSC源创会南京站"进行<Angular 4.0核心特性>演讲分享.IT大咖说作为独家视频合作方,经主办方和讲者审阅授权发布 ...

最新文章

  1. Linux-3.14.12内存管理笔记【kmalloc与kfree实现】【转】
  2. 操作系统上机作业--根据莱布尼兹级数计算PI(1)(多线程)
  3. matlab重叠相加法求卷积,通过重叠相加法实现卷积的报告.doc
  4. 5G商用将满一年,6G研发开始了...
  5. Linux用户空间与内核空间(理解高端内存)
  6. air写文件 SecurityError: fileWriteResource 时报错的解决方法
  7. 构造函数创建私有变量(防继承)
  8. MD1——2 Corner
  9. 服务器 'server_1' 上的 MSDTC 不可用
  10. 实现微信摇一摇部分功能
  11. 最新的quartus ii、dsp builder、matlab版本匹配安装破解
  12. H3C和锐捷如何查看光衰
  13. ROS turtlebot_follower :让机器人跟随我们移动
  14. LabWindows界面的程序控制
  15. python中gbk是什么意思_用gbk比utf-8的好处是什么?
  16. spring中 allowBeanDefinitionOverriding(spring.main.allow-bean-definition-overriding) 分析
  17. 15年前陪你一起看《泰坦尼克号》的人在哪里?
  18. (十一)fcntl函数的介绍和使用
  19. C99:C标准库接口的头文件集和功能定义参考
  20. 基于ZYNQ7000的交叉编译工具链Qt+OpenCV+ffmpeg等库支持总结(一)

热门文章

  1. 计院生活--第一章 卧薪尝胆
  2. 基于web的在线视频编辑的设计
  3. Windows下如何启动Redis服务?
  4. html使用表格实现网页制作
  5. 记一次docker环境搭建笔记
  6. 7-6 愤怒的牛 (25 分)
  7. vue实现pc端扫码登录
  8. 通过Exchange Online(Office365)地址簿策略实现用户地址簿隔离
  9. spark.read.option参数
  10. 432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型