Dubbo概述
阿里开发的高性能轻量级JavaRPC框架;
提供高性能和透明化的RPC远程调用方案,以及SOA服务治理方案
Dubbo快速入门
注册中心可以用nacos、ZooKeeper
web,service通过dubbo完成远程调用;
dubbo-admin是一个管理平台
高级特性:
序列化
已经将序列化反序列化封装了,实体类必须实现Serliable接口;
地址缓存
注册中心挂了,会通知消费者,可以访问缓存;
超时和重试
设置一个超时时间(默认1000ms,配置在提供方),无法完成服务访问,自动断开连接,防止雪崩;但是会出现网络抖动,那么请求就失败了,通过重试机制避免(retries默认为2);
多版本
灰度发布,当出现新功能时,会让一部分用户先使用新功能,用户反馈没问题时,再将所有用户迁移到新功能;dubbo中使用version属性来设置和调用同一个接口的不同版本;
负载均衡
随机Random,按权重设置随机概率;
权重RoundRobin,按权重轮询;
LeastActive,最少活跃调用数,相同活跃数的随机;
ConststentHash,一致性Hash,相同参数的请求总是发到同一提供者;
集群容错
Failover Cluster,失败重试,默认重试2次,一般用于读操作;
Failfast Cluster,快速失败,只发起一次调用,失败立即报错,通常用于写操作;
Failsafe Cluster,失败安全,出现异常时,直接忽略,返回一个空结果;
Failback Cluster,失败自动恢复,后台记录失败请求,定时重发;
Forking Cluster,并行调用多个服务器,只要一个成功即返回;
Broadcast Cluster,广播调用所有提供者,逐个调用,任意一台报错则报错。
服务降级
mork=force:return null
mock=fail:return null
需要了解更多的相关知识可参考:Java | Apache Dubbo