Dorado 扩展点

优质
小牛编辑
133浏览
2023-12-01

与业界大多Java服务的扩展机制是一样的,Dorado使用JDK内置的服务提供发现机制。但Dorado在获取扩展点实现上进行了一些改造,比如可以按照名字或者角色(调用端或服务端)获取扩展点实现。所有的SPI接口通过@SPI注解来识别,使用者实现SPI接口并按照Java SPI规范配置即可使用。

Dorado目前提供了以下的SPI扩展点 :

标注不支持多个实现的扩展点要注意,使用中只能选择一种实现

SPI接口说明默认实现是否可以同时支持多个实现
com.meituan.dorado.registry.RegistryFactory注册中心MnsRegistryFactory(集成开源组件OCTO-NS)、ZookeeperRegistryFactory、MockRegistryFactory(用于无注册中心服务时测试)支持,通过配置选择使用
com.meituan.dorado.cluster.Cluster请求容错策略FailoverCluster(失败直接返回)、FailbackCluster(失败后重试其他节点)、FailOverCluster(失败重发)支持,通过配置选择使用
com.meituan.dorado.cluster.LoadBalance负载均衡策略RandomLoadBalance(随机权重)、RoundRobinLoadBalance(加权轮询)支持,通过配置选择使用
com.meituan.dorado.cluster.Router路由策略NoneRouter ;路由一般跟节点部署强相关,Dorado暂未提供默认实现,若使用OCTO-NS获取则是经过路由的服务列表支持,通过配置选择使用
com.meituan.dorado.rpc.handler.InvokeHandler服务请求处理类DoradoInvokerInvokeHandler(调用端请求处理)、DoradoProviderInvokeHandler(服务端请求处理)支持,通过角色获取,但服务端或调用端只能有一个
com.meituan.dorado.rpc.handler.HeartBeatInvokeHandler心跳请求处理ScannerHeartBeatInvokeHandler (OCTO-Scanner心跳处理)支持,由HandlerFactory按名字选择使用
com.meituan.dorado.rpc.handler.HandlerFactory根据消息类型获取InvokeHandler和.HeartBeatInvokeHandlerDoradoHandlerFactory不支持
com.meituan.dorado.rpc.handler.filter.Filter过滤器实现DoradoInvokerTraceFilter(用于调用端埋点)、DoradoProviderTraceFilter(用于服务端埋点)支持,共同使用
com.meituan.dorado.rpc.handler.http.HttpInvokeHandlerHttp接口测试DoradoHttpInvokeHandler不支持
com.meituan.dorado.check.http.HttpCheckHandler服务自检DoradoHttpCheckHandler不支持
com.meituan.dorado.codec.Codec编解码OctoCodec不支持
com.meituan.dorado.transport.LengthDecoder协议长度解码DoradoLengthDecoder不支持
com.meituan.dorado.transport.ClientFactory调用端传输模块NettyClientFactory不支持
com.meituan.dorado.transport.ServerFactory服务端传输模块NettyServerFactory不支持
com.meituan.dorado.transport.http.HttpServerFactoryHttp服务NettyHttpServerFactory不支持
com.meituan.dorado.trace.InvokeTrace数据埋点CatInvokeTrace(集成开源组件Cat)支持,共同使用
com.meituan.dorado.rpc.proxy.ProxyFactory代理类JdkProxyFactory不支持