官方文档
https://dubbo.apache.org/zh-cn/index.html
Dubbo常用配置策略用法
1、启动时检查:默认不可用时会抛出异常,为防循环依赖, check="false"
2、集群容错配置:缺省为 failover 重试,自动切换其它服务器。其它(Failfast/ Failsafe/ Failback)
3、负载均衡配置: Random随机/ RoundRobin轮询/ LeastActive最少活跃数
4、只订阅/只注册:禁止注册register=“false“/禁止订阅subscribe="false"
5、服务分组: group=“xxx"
6、多版本: version="1.0.0"
7、结果缓存: cache=“lru”
8、泛化调用: generic=“true”,没有接口api时,强转为GenericService类型
9、回声测试:同上,强转为EchoService类型
10、异步调用: async=“true”,并行调用多个远程服务(使用Future<T> object = RpcContext.getContext().getFuture()获取返回对象)
11、事件通知: onreturn:方法正常返回,则回调callback对象的对应方法, onthrow = “xxx.onreturn"方法异常时,则回调
分布式拆分原则(一般会建maven的私有仓库)
1、重用发布等价原则(实现会变,但是接口规范不变)
2、共同重用原则
dubbo标签
dubbo的spi使用
spi:为接口寻找实现类
@SPI("默认别名")
@Activate(group,value,order),value使用:用于url内有value指定的key时,激活
@Adaptive("key(动态寻找最佳时,url内key=a的名)")自适配,类上标记是最佳适配,方法上是代理
dubbo的spi机制
dubbo标签
dubbo使用注解方式启动时,除了service和reference是在初始化时需要扫描,其余的都在入口类定义好了,@EnableDubboConfig用来解析属性文件的,@DubboComponentScan注解的作用是用来扫描@Service和@Reference注解的
@service在加载时做的事情有:在spring中实例化放到ioc容器里,然后把服务暴露出来(包装成invoker,然后使用export(invoker)进行暴露)。
@reference在加载时做的事情:生成代理类bean,refer(interface,url)-> invoker,proxy(invoker)。