Dubbo各项已有扩展点
2021-11-09 17:57:42 0 举报
AI智能生成
dubbo各项已有扩展点
作者其他创作
大纲/内容
启动时处理@DubboService 服务
注册服务
注册到本地服务
暴露到注册中心
服务调用时,根据负载均衡算法,选择一个provider
监控monitor 通过filter 手机各项服务信息
根据通信协议,远程调用接口
根据序列化协议,将参数或返回值序列化
出问题时
根据集群容错配置,处理集群异常
当你的@DubboService 服务发生异常是,根据mock配置对服务进行降级
也就是advice after-throwing 操作
也就是advice after-throwing 操作
当你调用@DubboReference 接口是,使用stub 配置,进行advice around 操作
负载均衡
org.apache.dubbo.rpc.cluster.LoadBalance
org.apache.dubbo.rpc.cluster.LoadBalance
加权随机 RandomLoadBalance
轮询随机 RoundRobinLoadBalance
最小活跃节点 LeastActiveLoadBalance
分区容错 ConsistentHashLoadBalance
通信协议
org.apache.dubbo.rpc.Protocol
org.apache.dubbo.rpc.Protocol
dubbo(推荐)
单一TCP长连接和NIO异步通讯
适合大并发小数据量的服务调用,以及服务消费者远大于提供者的情况
Hessian二进制序列化
缺点是不适合传送大数据包的服务
适合大并发小数据量的服务调用,以及服务消费者远大于提供者的情况
Hessian二进制序列化
缺点是不适合传送大数据包的服务
rmi
采用JDK标准的rmi协议实现,传输参数和返回参数对象需要实现Serializable接口
使用java标准序列化机制,使用阻塞式短连接,传输数据包不限,消费者和提供者个数相当
多个短连接,TCP协议传输,同步传输,适用常规的远程服务调用和rmi互操作
使用java标准序列化机制,使用阻塞式短连接,传输数据包不限,消费者和提供者个数相当
多个短连接,TCP协议传输,同步传输,适用常规的远程服务调用和rmi互操作
rest
基于标准的Java REST API,实现的REST调用支持
http
基于Http表单提交的远程调用协议,使用Spring的HttpInvoke实现
对传输数据包不限,传入参数大小混合,提供者个数多于消费者
对传输数据包不限,传入参数大小混合,提供者个数多于消费者
序列化协议
org.apache.dubbo.common.serialize.Serialization
org.apache.dubbo.common.serialize.Serialization
hessian2 默认
kryo 推荐
fst 推荐
protobuf
集群容错
org.apache.dubbo.rpc.cluster.Cluster
failover
失败自动切换,当出现失败,重试其它服务器。通常用于读操作,但重试会带来更长延迟,retries
失败自动切换,当出现失败,重试其它服务器。通常用于读操作,但重试会带来更长延迟,retries
failfast
快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如新增记录。
快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如新增记录。
failsafe
失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。
失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。
failback
失败自动恢复,后台记录失败请求,定时重发。通常用于消息通知操作。
失败自动恢复,后台记录失败请求,定时重发。通常用于消息通知操作。
Forking
并行调用多个服务器,只要一个成功即返回。通常用于实时性要求较高的读操作,但需要浪费更多服务资源。可通过 forks="2" 来设置最大并行数。
并行调用多个服务器,只要一个成功即返回。通常用于实时性要求较高的读操作,但需要浪费更多服务资源。可通过 forks="2" 来设置最大并行数。
Broadcast
广播调用所有提供者,逐个调用,任意一台报错则报错。通常用于通知所有提供者更新缓存或日志等本地资源信息。
广播调用所有提供者,逐个调用,任意一台报错则报错。通常用于通知所有提供者更新缓存或日志等本地资源信息。
服务降级
mock
等同于 AOP 中的 after-throwing advice
mock=force:return+null 表示消费方对该服务的方法调用都直接返回 null 值,不发起远程调用。用来屏蔽不重要服务不可用时对调用方的影响。
还可以改为 mock=fail:return+null 表示消费方对该服务的方法调用在失败后,再返回 null 值,不抛异常。用来容忍不重要服务不稳定时对调用方的影响。
服务存根
stub
本地存根的工作方式与 AOP 的 around advice 类似
0 条评论
下一页