Dubbo的学习

81 阅读3分钟

课程前述:

架构的演进

单体架构

image.png

垂直架构

image.png

分布式架构

- 抽取公共模块,进行RPC调用

image.png

SOA架构

ESB image.png

微服务架构

image.png

架构演进

image.png

Dubbo整合spring$SpringMVC

SERVICE 模块的改在

  • 将service暴漏有Spring管理改为Dubbo管理
  • 变更配置文件,增加注册中心zookeeper的配置

image.png

在zookeeper中查看是否有provider\consumer进行注册

cloud.tencent.com/developer/a…

image.png

Dubbo-admin的安装与使用

image.png 实际上就是一套服务的监控机制【Monitor】

  • ui 需要安装nodeJs,前端使用VUE编写的,需要nodejs环境运行
  • server模块需要修改链接zk注册中心的地址。

Duboo的序列化

传输java对象,需要将对象序列化,implements Serializable.

Duboo高级特性——地址缓存

zk注册中心挂了,消费端仍然可以访问服务端,消费者第一次通过zk能达到服务提供者,然后缓存到本地 image.png

超时与重试

服务消费者调用服务提供者发生阻塞、等待等情况。 Duboo提供了超时机制,如果超时,则服务端会断开链接。避免资源耗尽。 超时可以在@Service中配置,也可以在消费端@Reference中配置。 如果@Service中与@Reference中都进行配置,则以@Reference中为准 建议在服务的提供方进行配置【提供者更清楚服务的情况】。

image.png image.png

Dubbo高级特性——多版本

  • 多版本:
  • 在提供方提供多个版本的服务,@Service中定义version特性。
  • 在消费方指定要消费的版本:

image.png image.png

Dubbo高级特性——负载均衡

  • 负载均衡的策略: 在@Service中配置服务的权重,在@Refence中指定负载均衡的策略。
    • Random:按照权重随机。

    • RoundRobin:按权重轮询

    • LeastActive:最少活跃调用数。

image.png image.png image.png

具体每种loadBalance的名称可以【双击shift,然后搜索loadBalance】进行查询,举例如下:

image.png

关于【最少活跃调用数】: 官方解释:最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差,使慢的机器收到更少。

例如,每个服务维护一个活跃数计数器。当A机器开始处理请求,该计数器加1,此时A还未处理完成。若处理完毕则计数器减1。而B机器接受到请求后很快处理完毕。那么A,B的活跃数分别是1,0。当又产生了一个新的请求,则选择B机器去执行(B活跃数最小),这样使慢的机器A收到少的请求。 ———————————————— 原文链接:blog.csdn.net/revivedsun/…

Dubbo-集群容错

有多种容错机制:

  • 在@Reference中配置即可,@Service无需配置
  • 某个机器信息异常,可以还用集群容错机制,在集群中多个物理机节点中调用重试等。

image.png

image.png 具体dubbo支持的集群容器的设置:

  • failover:一般用于读操作,一个物理机节点挂了可以切换到其他的物理机节点
  • failsafe:一般用于写操作:只要尝试一些,挂了就挂了。

image.png

Dubbo高级特性——服务降级

服务有重要的和不重要的,针对不同的服务设置不同的服务降级机制。 image.png

image.png

附录: