dubbo框架学习笔记

1、dubbo支持的配置中心

  1. Zookeeper
  2. nacos
  3. Apollo

2、dubbo支持的注册中心

  1. Zookeeper
  2. Nacos
  3. Multicast
  4. Redis

注意:当Dubbo使用3.0.0及以上版本时,需要使用Nacos 2.0.0及以上版本

3、zookeeper

 Zookeeper是Apacahe Hadoop的子项目,是一个树型的目录服务,支持变更推送,适合作为dubbo服务的注册中心,工业强度较高,可用于生产环境,并推荐使用。

流程:

  • 服务提供者启动时: 向 /dubbo/com.foo.BarService/providers 目录下写入自己的 URL 地址。
  • 服务消费者启动时: 订阅 /dubbo/com.foo.BarService/providers 目录下的提供者 URL 地址。并向 /dubbo/com.foo.BarService/consumers 目录下写入自己的 URL 地址
  • 监控中心启动时: 订阅 /dubbo/com.foo.BarService 目录下的所有提供者和消费者 URL 地址。

支持以下功能:

  • 当提供者出现断电等异常停机时,注册中心能自动删除提供者信息
  • 当注册中心重启时,能自动恢复注册数据,以及订阅请求
  • 当会话过期时,能自动恢复注册数据,以及订阅请求
  • 当设置 <dubbo:registry check="false" /> 时,记录失败注册和订阅请求,后台定时重试
  • 可通过 <dubbo:registry username="admin" password="1234" /> 设置 zookeeper 登录信息
  • 可通过 <dubbo:registry group="dubbo" /> 设置 zookeeper 的根节点,不配置将使用默认的根节点。
  • 支持 * 号通配符 <dubbo:reference group="*" version="*" />,可订阅服务的所有分组和所有版本的提供者

4、高可用

4.1、zookeeper宕机

问题:zookeeper宕机后,消费者还可以调用提供者的服务吗?

  • 可以
  • dubbo具有健壮性,注册中心集群部分宕机后,会自动切换到剩余的注册中心
  • 当注册中心全部宕机后,dubbo可以通过本地缓存进行通讯
  • 服务提供者全部宕机后,服务消费者将无法使用,并无限次重连等待提供者恢复
4.2、dubbo直连

问题:没有注册中心,dubbo可以调用服务吗?

  • 可以,使用dubbo直连

如下:

5、dubbo负载均衡机制

  • dubbo默认使用的随机权重的负载均衡机制-random

dubbo负载均衡机制:

 使用:@Reference(loadbalance="roundrobin")

修改负载均衡机制为轮询

6、dubbo服务降级

  • 可以使用dubbo监控中心,对服务继续降级

降级有两种方式:

  • 消费者不发出请求,当页面请求时,该服务会直接返回null(接口直接是空的)
  • 消费者发出请求,提供者返回null(接口直接是空的)

7、服务容错

实际开发中,会使用Hystrix

dubbo整个hystrix

1>导入依赖

消费者和提供者都需要导入

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
    <version>1.4.4.RELEASE</version>
</dependency>

2>在启动类上开启hystrix支持

消费者和提供者都需要开启

  • @EnableHystrix

3>在方法上添加@HystrixCommand

  • @HystrixCommand(fallbackMethod="服务远程调用失败时,回调的方法名称")

如:@HystrixCommand(fallbackMethod="hello"),失败后回调hello方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

睡竹

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

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

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

打赏作者

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

抵扣说明:

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

余额充值