dubbo

官方文档

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 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)。

servicebean和referencebean注册后,如何通过rpc拉通的




加入注册中心后的逻辑关系图


你可能感兴趣的:(dubbo)