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"/>
  • 相关阅读:
    leetcode 1301. 最大得分的路径数目
    LeetCode 1306 跳跃游戏 III Jump Game III
    LeetCode 1302. 层数最深叶子节点的和 Deepest Leaves Sum
    LeetCode 1300. 转变数组后最接近目标值的数组和 Sum of Mutated Array Closest to Target
    LeetCode 1299. 将每个元素替换为右侧最大元素 Replace Elements with Greatest Element on Right Side
    acwing 239. 奇偶游戏 并查集
    acwing 238. 银河英雄传说 并查集
    acwing 237程序自动分析 并查集
    算法问题实战策略 MATCHORDER 贪心
    Linux 安装Redis全过程日志
  • 原文地址:https://www.cnblogs.com/s-star/p/12510698.html
Copyright © 2011-2022 走看看