Dubbo学习文档

Dubbo学习文档

总结

Dubbo使用 需要在服务提供方和服务消费方配置各自的如下配置

屏幕截图 2023-02-04 185027

一、基础知识

1.1 分布式概念

分布式系统是若干个独立计算机的集合。

了解序列化与反序列化:Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。 序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络上传输。 … 反序列化就是打开字节流并重构对象

1.2 RPC

RPC俩个核心模块:通讯(Socket)、序列化

RPC多个框架:dubbo、gRPC、Thirft、HSF

RPC原理:屏幕截图 2023-02-04 111403

节点角色:屏幕截图 2023-02-04 111757

1.3 Dubbo基本工作原理:屏幕截图 2023-02-04 111544

1.4 调用关系

(1) 服务容器(Container),主要负责启动、加载、运行服务、

(2) 服务提供者(Provider)在启动时,需要向注册中心注册自己提供的服务。

(3) 服务消费者(Consumer)在启动时,向注册中心订阅自己所需要的服务。

(4) 在注册中心返回服务列表给到服务消费者,如果有变更,注册中心将基于长连接推送变更的数据。

(5) 服务消费,从提供的服务列表中,获取到对应的服务后,去调用远程服务关联的业务逻辑。

(6) 监控中心(Monitor),将服务消费者和服务提供者在内存累计被访问和调用的次数,监控中心每一分钟进行一次统计。

二、dubbo配置

2.1 注册中心:

Zookeeper 负责服务地址的注册服务地址的查询。

服务提供方和服务消费方只在启动时与注册中心进行交互,注册中心不负责具体请求的处理

2.2 Zookeeper下载安装:

阿帕奇动物园管理员 (apache.org)

Zookeeper下载安装注意:需要在conf文件夹中的zoo_sample.cfg 复制一份 重命名为zoo.cfg,并进入bin级目录下通过cmd输入命令行zkServer.cmd启动,同时进入bin级目录下输入命令行zkCli.cmd

2.3 小案例

特别提示:服务提供方是一个maven项目,服务消费方又是一个maven项目 没有整合springboot.

2.3.1 服务提供方配置spring.xml文件
屏幕截图 2023-02-04 125650

监听器配置在web.xml下:

屏幕截图 2023-02-04 125944
2.3.2 服务消费方配置spring.xml文件
屏幕截图 2023-02-04 133752

在web.xml文件下配置前端控制器

屏幕截图 2023-02-04 134022

案例总结:服务提供方需要写业务层接口和实现;服务消费方需要写跟服务提供方一样的接口但不需要实现接口,还需要写Controller层。

注意:Controller层的依赖注入,不再使用@Autowired注解,使用dubbo提供的@Reference,原因如下:image-20230204133108400

2.4配置

2.4.1 启动检查
屏幕截图 2023-02-04 141834
2.4.2 配置重试次数&超时时间
image-20230204153241266

服务端设置重试次数

屏幕截图 2023-02-04 153534
2.4.3 配置多版本

服务提供方配置:

屏幕截图 2023-02-04 154944

注意:

如果服务消费方配置了dubbo:reference,则Cotroller层的依赖注入注解就得使用@Autowired

服务消费方配置:

屏幕截图 2023-02-04 155055
2.4.4 本地存根 (就是充当中介的角色)
屏幕截图 2023-02-04 160703

三、高可用

1、Zookeeper宕机与Dubbo直连

现象:zookeeper注册中心宕机,还可以消费dubbo暴露的服务。

原因:

健壮性:
(1)监控中心宕掉不影响使用,只是丢掉部分采样数据。
(2)数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务。
(3)注册中心完全宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯。
(4)服务提供者无状态,任意一台宕掉后,不影响使用。
(5)服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复。
高可用:通过设计,减少系统不能提供服务的时间

2.负载均衡机制

默认调用随机均衡机制,可通过配置修改

(1) 基于权重的随机负载均衡机制

屏幕截图 2023-02-03 160608

(2) 基于权重的轮询负载均衡机制

屏幕截图 2023-02-03 160828

(3) 最少活跃数-负载均衡机制

屏幕截图 2023-02-03 161000

(4) 一致性hash-负载均衡机制

屏幕截图 2023-02-03 161106

3.服务降级

什么是服务降级?

当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和也页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作。

具体实现:可以在消费者一方屏蔽某些服务或容错某些服务

屏蔽:不调用远程方法,直接返回空对象。

容错:调用远程方法,返回空对象。

  1. 服务器容错&Hystrix

在集群调用失效时,Dubbo提供了多种容错方案,默认为Failover Cluster:当出现失效,重试其它服务器。

实际开发中整合hystrix:

Hystrix旨在通过控制哪些访问远程系统、服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。Hystrix具备拥有回退机制和断路器功能的线程和信号隔离,请求缓存和请求打包,以及监控和配置等功能。

(1) 配置spring-cloud-starter-netflix-hystrix.

直接在pom.xml中加入依赖

然后在启动类上加上@EnableHystrix来启用

(2) 配置Provider端

在Dubbo的Provider上加上@HystrixCommand配置,经过Hystrix代理。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

six-key

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值