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