• Dubbo学习


    Dubbo中文官网地址:https://dubbo.apache.org/zh/docsv2.7/user/preface/

    服务提供者-版本1

    @Service(timeout = 3000,retries = 2)
    public class HelloDubboServiceImpl implements HelloDubboService{
    	public String sayHello(){
    		System.out.println("==sayHello==");
    		return "Hello Dubbo ... ";
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    服务提供者-版本2

    @Service(version="v1.0.2")
    public class HelloDubboServiceImpl2 implements HelloDubboService{
    	public String sayHello(){
    		System.out.println("==New sayHello 2==");
    		return "New Hello Dubbo ... ";
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    服务消费者

    @RestController("/test/*")
    public class TestController{
    	@Reference(version="v1.0.2")
    	private HelloDubboService helloDubboService;
    	@GetMapping("sayHello")
    	public String testSayHello(){
    		return helloDubboService.sayHello();
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    序列化:将Java实体对象转化为流的数据进行数据传输,需要实体对象实现序列化接口
    反序列化:将流的数据转化为Java实体对象
    Dubbo内部已经将序列化和反序列化过程进行了封装,只需要在实体类中实现序列化接口即可
    在这里插入图片描述

    地址缓存

    如果注册中心宕机了,服务也可以正常访问,原因是因为 Dubbo 的服务消费者在第一次调用时,会将服务提供者的地址缓存到本地,下次再调用的时候就不会在访问注册中心了。
    当服务提供者地址发生变化时,注册中心会通知服务消费者,服务消费者会把最新的地址缓存到本地。

    **注意:注册中心宕机后,新服务不能被注册中心注册和访问,服务消费者访问服务提供者时,只能访问旧的服务地址,新的服务不会被注册。 **
    在这里插入图片描述

    超时重试

    服务消费者调用服务提供者时,发生了阻塞,这时就会出现消费者一致等待的现象
    当大量消费者同时调用请求时,便会造成大量的线程堆积,从而使服务消费者服务压力过大,造成雪崩。
    Dubbo利用了超时处理机制,设置超时时间后,如果请求在这个时间内没有完成访问,则会自动断开连接,释放资源,超时时间默认值是1000ms

    在这里插入图片描述

    @Service(timeout=3000,retries=2) 超时时间和重试次数
    Dubbo的默认值为“2”,加上原本线程访问时的一次,一共3次,如果调用时失败(1次),Dubbo会在根据配置继续重试(默认retries=2次),一共3次。
    在这里插入图片描述
    如果在服务提供者方设置了超时时间 @Service(timeout = 3000),在服务消费者中也设置了超时时间 @Reference(timeout = 2000) ,此时服务提供者上的超时时间便会失效
    超时时间一般设置在服务提供者方,消费者只需要调用访问即可。

    多版本

    在这里插入图片描述

    负载均衡

    在这里插入图片描述

    集群容错

    在这里插入图片描述

    服务降级

    在这里插入图片描述

    Dubbo中文官网地址:https://dubbo.apache.org/zh/docsv2.7/user/preface/

  • 相关阅读:
    基于springboot实现财务管理系统项目【项目源码+论文说明】计算机毕业设计
    交了一个程序员男朋友后,我彻底变了……
    java计算机毕业设计线上文具销售系统源码+数据库+系统+lw文档+mybatis+运行部署
    基于Echarts实现可视化数据大屏物流云大数据看板页面HTML模板
    极智AI | Realtime Multi-Person人体姿态估计之OpenPose
    Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台
    mybatis核心配置文件
    并查集-合并集合
    QT5自定义下拉框为QTreeView类型(树形分上下级)的下拉框(QComboBox)(超详细步骤)
    力扣labuladong——一刷day39
  • 原文地址:https://blog.csdn.net/qq_51076413/article/details/126195513