Dubbo
概念
是一个高性能、轻量级的java RPC框架
作用
远程服务调用、SOA服务治理方案
架构
序列化
实体类 implements Serializable
地址缓存
面试题
注册中心挂了,服务是否可以正常访问?
可以,因为dubbo服务消费者在第一次调用时会将服务提供方地址缓行到本地,以后在调用则不会访问注册中心。
当服务提供者地址发生变化时,注册中心会通知服务消费者。
超时与重试
当用户访问服务消费者时,服务消费者会创建一个线程去访问服务消费者。若有海量用户访问服务消费者时,由于服务提供者无法访问,就会造成大量的线程在服务消费方堆积,导致服务压力过大,甚至瘫痪。通过设置超时时间,在这个时间段内,无法完成服务访问,则自动断开连接。
多版本
- 灰度发布:当出现新功能时,会让部分用户先使用新功能,用户反馈设问题时,再将所有用户迁移到所功能。
- dubbo中使用version需性来设置和调用同一个接口的不同版本
服务提供方:
服务消费方:
负载均衡
负载均衡策路(4种):
- Random:按权重随机,默认值。按权重设置随机概率。
- RoundRobin:按权重轮询。
- LeastActive:最少活跃调用数,相同活跃数的随机
- ConsistentHash:一致性Hash,相同参数如的请求总是发到同一提供者
提供方:
消费方: