今天作为dubbo系列的最后一篇,内容很简单,就是dubbo默认的配置有很多,今天总结实际中dubbo可能会用到的配置以及作为一个开发人员能够做哪些扩展?
& dubbo相关配置
>check="false":关闭服务依赖检查机制
>retries="2:设置重试次数
>forks="2":设置最大并行数
>"version="1.0.0":服务多版本升级
>"cache="lru":指定缓存,提高访问性能
>sent:
>>sent="true" 等待消息发出,消息发送失败将抛出异常
>>sent="false" 不等待消息发出,将消息放入IO队列,即刻返回
>async
>>return="false",async="true":忽略返回值
>>return="true",async="true":不忽略返回值
服务事件通知
>>oninvoker;服务调用之前
>>onreturn:服务调用之后
>>onthrow:服务调用异常
>delay="5000":服务需要延迟暴露,等待其他资源
spring初始化死锁
原因:singletonObjects和beanDefinitionMap
解决:deplay=”-1(Dubbo在Spring容器初始化完后,再暴露服务)”和 禁止applicationContext.getBean()
>executes="10:并发请求数量
>mock=force:return+null:方法调用直接返回Null
>mock=fail:return+null:方法调用失败后返回Null
>key="shutdown.timeout"value="60000":超时优雅停机
> threads="100":线程池
>timeout="1000":服务调用超时
& 开发人员扩展
>Filter:直接实现接口,可以完成特定业务过滤规则
>Router:实现抽闲的父类,可以根据自己特定的过滤规则进行路由
>Cluster:实现一个接口加一个对应的invoker,可以实现自己的容错机制
>LoadBalance:实现一个接口,完成自己的负载均衡方式
记住 上面所有的实现,最终需要在对应加载文件里面进行配置,否则无效