dubbo体系
2018-08-20 15:07:29 3 举报
AI智能生成
dubbo知识点
作者其他创作
大纲/内容
DUBBO
服务发布
服务暴露
本地暴露 injvm
远程暴露 remote
服务暴露与Extensionloader机制的联系
Protocol
HeaderExchangeServer
ExchangeServer
Transporter
Exporter
Invoker
心跳机制
HeaderExchangeClient
DubboProtocol.requestHandler
装饰模式
session超时?似乎未处理
ProxyFactory
netty
协议
粘包问题解决
oneway
twoway
动态代理
jdk
Wrapper
javaassist 直接生成代码
zookeeper
dubbo在什么时候进行注册(regist协议/与dubbo协议)
RegistryProtocol
DubboProtocol
zkClient
Curator
什么时候创建临时 什么时候创建永久
内核
dubbo spi
jdk spi
ServiceLoader
loadInstalled
load
为什么dubbo要自己实现spi
JDK标准的SPI会一次性实例化扩展点所有实现,如果有扩展实现初始化很耗时,但如果没用上也加载,会很浪费资源。
增加了对扩展点IoC和AOP的支持,一个扩展点可以直接setter注入其它扩展点。
遍历list没有根据key来获取方便
dubbo的SPI
源码位置com.alibaba.dubbo.common.extension
入口方法getExtensionLoader
@Adaptive 装饰模式,动态生成java代码并且编译
IOC
AOP
工厂模式
动态编译
javaassist
根据入配置类构造方法自动warpper
dubbo 与spring整合
NamespaceHandlerSupport
BeanDefinitionParser
AbstractSingleBeanDefinitionParser
spring bean生命周期
spring扩展方式
xml
@Import注解
服务引用
FactoryBean
ReferenceBean
RegistryDirectory
Cluster
loadbalance
集群容错
整体调用
cluster
Directory
zookeeper Listener
StaticDirectory
多注册中心
无Listener
router
MockInvokersSelector
ScriptRouter
ScriptEngine
ConditionRouter
灰度发布
MergeableCluster
聚合结果
配置中的group,一个接口多个实现的情况
AvailableCluster
ForkingCluster
调用多个只要一个返回即成功
适用于实时性较高的场景,需要浪费服务器资源
FailfastCluster
快速失败
适用于非幂等场景如写操作
FailoverCluster
失败自动切换
适用于读操作
FailbackCluster
失败自动恢复
适用于消息通知类型
FailsafeCluster
失败安全,出现异常时,直接忽略
适用于日志类调用
BroadcastCluster
广播调用所有提供者,逐个调用,任意一台报错则报错
用于广播通知
MockClusterWrapper
本地伪装通常用于服务降级,比如某验权服务,当服务提供方全部挂掉后,客户端不抛出异常,而是通过 Mock 数据返回授权失败
RandomLoadBalance
权重如何实现
RoundRobinLoadBalance
LeastActiveLoadBalance
ConsistentHashLoadBalance
服务降级
MockClusterInvoker
屏蔽
force
容错
fail-mock
0 条评论
回复 删除
下一页