Dubbo
https://github.com/JinZhengjuner/dubbo.git
为什么有了http,还要用rpc?
http是网络层的一个协议,而rpc是一个远程调用服务,底层的通信可以基于tcp和http等协议来实现。
http更多的使用场景是web前后端调用间的交互,rpc更多的使用场景是分布式系统间的调用
dubbot哪些不同代表不同服务?
协议(http、dubbot)😕/ip:port/url + [group] + [version]
- 负载均衡
一般配置在消费者,
1.随机
2.轮训
3.最少使用 leastactive
4.一致性hash
- 服务超时
服务端:超时打印日志
消费端:会抛异常
- 集群容错
失败了之后会去调用其他服务提供者
-
服务降级
-
本地存根
相当于把消费端dubbo注入的对象,try起来了 -
本地伪装
消费端本地伪装一个返回参数直接返回给消费端 -
参数回调
消费者
生产者
-
异步调用
生产者
消费者
-
泛化调用
生产者
消费者
-
Rest
-
动态配置
注意动态配置修改的是服务参数,并不能修改服务的协议、IP、PORT、VERSION、GROUP,因为这5个
信息是服务的标识信息,是服务的身份证号,是不能修改的。
- 条件路由
按条件打到哪台机器
消费端本地伪装一个返回参数直接返回给消费端
整体架构流程
SPI后续更新