本文主要是介绍dubbo再回首,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
dubbo
spi:据名字找类按需加载,增加缓存存储实例,对ioc api对支持
之前的博客实战总结: https://so.csdn.net/so/search?q=dubbo&t=blog&u=ma15732625261
服务引入
饿汉式
调用referenceBean的afterPropertiesSet方法引入服务
referenceBean实现factoryBean接口,任意服务interface进行自动注入或getBean获取,getObject函数服务引用过程
本地引入走injvm协议,服务器缓存中取exporter
直连远程引入服务,测试情况下 不需要启动注册中心,consumer配置写死地址 直连
注册中心引入远程服务,consumer通过注册中心得知provider信息,服务引入
懒汉式:默认
服务被注入到其他类启动引入流程,用到了再引入
获取注册中心实例,向注册中心注册自己,订阅providers configurators routers ,触发dubboInvoker生成,cluster封装多个服务调用者,返回一个invoker
配置构建一个map,利用map构建url,通过url协议利用自适应扩展机制调用相应的protocol.refer得到invoker,构建代理,封装invoker返回服务引用,consumer调用这个代理类
服务暴露
url:
protocol://username:password@host:port/path?key=value&key=value
protocol:各种协议 dubbo thrift http
path:接口名称。parameters:参数键值对
扩展:serviceBean实现了applicationListener,监听contextRefreshedEvent时间,ioc容器刷新完调用onApplicationEvent方法,暴露启动点,据配置url 利用dubbo spi 据url参数选择对应实现类
通过javassist动态封装服务实现类,同一暴露出invoker,封装exporter存储起来,等待消费者调用,url注册到注册中心,消费者获取服务提供者信息
一个服务多个协议都需要暴露,多中协议分别向多注册中心暴露注册
这篇关于dubbo再回首的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!