zoukankan      html  css  js  c++  java
  • Dubbo

    (一)优先级:

    1. 配置方式优先级:

    • JVM -D参数
    • XML
    • Properties

    2. 配置优先级:

    • 方法级优先,接口级次之,全局配置再次之;
    • 如果级别一样,则消费方优先,提供方次之。

    (二)check(启动时检查)

    在启动服务时检查相关服务是否可用;

    默认check=true,即启动服务时检查有没有可用服务,如果没有启动时报错;

    check=false,启动时不检查,只有在调用时才去检查有没有可用服务,没有则报错。

    1. 针对单个服务配置:

    <dubbo:reference id="demoService" interface="com.jcx.dubbo.demo.service.IDemoService" check="false"/>

    2. 统一设置所有消费者服务配置:

    <dubbo:consumer check="false"/>

    3. 启动时对注册中心的检查:

    注册中心不存在时是否报错,默认check=true

    <dubbo:registry check="false"/>

    4. dubbo.properties配置:

    dubbo.reference.com.jcx.dubbo.demo.service.IDemoService.check=false
    dubbo.reference.check=false
    dubbo.consumer.check=false
    dubbo.registry.check=false

    (三)timeout(超时设置):

    服务消费者引用提供者在指定时间内没返回,则终止;单位为ms;默认是1000ms

    1. 针对单个服务配置:

    <dubbo:reference id="demoService" interface="com.jcx.dubbo.demo.service.IDemoService" timeout="5000"/>

    2. 针对具体方法配置:

    <dubbo:reference id="demoService" interface="com.jcx.dubbo.demo.service.IDemoService">
        <dubbo:method name="sayHello" timeout="3000"/>
    </dubbo:reference>>

    3. 统一设置所有提供配置:

    <dubbo:provider timeout="5000"/>

    注:建议超时时间都配置在消费方

    (四)retries(重试次数):

    不包含第一次调用,若设置retries="3"则共调用4次;

    如果提供方存在多个,会调用其他提供者,总数加起来为4次,若调用成功则终止;

    <dubbo:reference id="demoService" interface="com.jcx.dubbo.demo.service.IDemoService" retries="3"/>

    注:如果为幂等(多次调用结果相同)操作,可配置重试次数,如数据库查询等操作;非幂等操作,则不配置重试次数,如数据库新增等操作。

    (五)version(多版本):

    provider:

    <!--老版本-->
    <dubbo:service interface="com.jcx.dubbo.demo.service.IDemoService" version="1.0.0"/>
    
    <!--新版本-->
    <dubbo:service interface="com.jcx.dubbo.demo.service.IDemoService" version="2.0.0"/>

    consumer:

    <!--调用老版本-->
    <dubbo:reference id="demoService" interface="com.jcx.dubbo.demo.service.IDemoService" version="1.0.0"/>
    
    <!--调用新版本-->
    <dubbo:reference id="demoService" interface="com.jcx.dubbo.demo.service.IDemoService" version="2.0.0"/>
    
    <!--不区分版本,随机调用-->
    <dubbo:reference id="demoService" interface="com.jcx.dubbo.demo.service.IDemoService" version="*"/>

    (六)stub(本地存根):

    服务消费者对调用真正实现之前对参数进行验证或者缓存等操作,判断是否满足要求再做调用

    本地存根代码实现:

    import com.jcx.dubbo.demo.service.IDemoService;
    import org.springframework.util.StringUtils;
    
    /**
     * 本地存根实现类
     */
    public class DemoServiceStubImpl implements IDemoService {
    
        private final IDemoService demoService;
    
        /**
         * 必须要有有参构造,传入真正的远程代理对象
         *
         * @param demoService 远程代理对象
         */
        public DemoServiceStubImpl(IDemoService demoService) {
            super();
            this.demoService = demoService;
        }
    
        public String sayHello(String userName) {
            if (!StringUtils.isEmpty(userName)) {
                return demoService.sayHello(userName);
            }
            return null;
        }
    }

    配置:

    <dubbo:reference id="demoService" interface="com.jcx.dubbo.demo.service.IDemoService" stub="com.jcx.dubbo.demo.service.impl.DemoServiceStubImpl"/>
  • 相关阅读:
    如何结合后台数据库 启动vue项目
    nodejs卸载安装
    mysql安装过程
    VUE-cli脚手架
    css伪类
    element中遇到的表格问题总结
    小程序折叠面板的功能
    vue学习中遇到的onchange、push、splice、forEach方法使用
    vscode好用的扩展及常用的快捷键
    Flutter之SliverAppBar
  • 原文地址:https://www.cnblogs.com/s-star/p/12510698.html
Copyright © 2011-2022 走看看