• Dubbo2.0


    1.Dubbo启动时检查
    1.1提供者和消费者都会注册在注册中心,消费者需要提供者的服务地址,如果没有启动提供者,只启动了消费者,消费者找不着服务地址就会报错;
    1.2Dubbo默认会在启动时检查依赖的服务是否可用,不可用会抛出异常,默认chack="true",可以设置成false不检查;

    2.超时设置&配置覆盖关系
    2.1方法级优先,接口级次之,全局配置再次之
    2.2级别一样时,消费者优先,提供者次之

     

    3.重试次数retries(如果是0就是不重试)
    3.1第一次不计入次数,如果有多个服务器,第一次调用的服务失败会再调用一次,再失败会去调用其他服务重试;
    3.2幂等可以设置重试次数[查询,删除,修改]
    非幂等不可以设置重试次数[新增(如果超时,一直重试,数据库会执行很多次)]

    4.多版本
    灰度发布
    版本控制:version,平滑过渡,
    当一个接口实现出现不兼容需要升级时,可以用版本号过渡,版本号不同的服务相互 间不引用。
    可以按照以下的步骤进行版本迁移:
    1. 在低压力时间段,先升级一半提供者为新版本
    2. 再将所有消费者升级为新版本
    3. 然后将剩下的一半提供者升级为新版本


    5.本地存根Stub
    远程服务后,客户端通常只剩下接口,而实现全在服务器端,但提供方有些时候想要在客户端也执行部分逻辑;比如本地缓存,提前验证参数,调用失败后伪造容错数据等等,此时就需要在API中带上Stub,客户端生成Proxy实例,会把Proxy通过构造函数传给Stub,然后把Stub暴露给用户,Stub可以决定要不要去调用Proxy

    6.高可用
    6.1监控中心宕掉不影响使用,只是丢失部分采样数据;
    6.2数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新的服务;
    6.3注册中心对等集群,任意一台宕掉后,将自动切换到另一台;
    6.4注册中心全部宕掉后,服务提供者和服务消费者人能通过本地缓存通讯;
    6.5服务提供者无状态,任意一台宕掉后,不影响使用,如果全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复;

    Dubbo直连:@Reference(url="127.0.0.1:10880")

    7.负载均衡LoadBalance
    7.1Random ~: 基于权重的随机负载均衡机制(权重百分比);


    7.2RounRobin ~: 基于权重的轮询负载均衡机制(轮流权重百分比);
    7.3LeastActive ~: 最少活跃数负载均衡机制(会找上次处理请求最快的)
    7.4ConsistentHash ~: 一致性Hash负载均衡机制

    8.服务降级
    8.1当服务器压力剧增的情况下,根据实际业务情况及流量,对一些业务和页面有策略的不处理或换种简单的方式处理,从而西方服务器资源以保证核心交易正常运作或高效运作;
    8.2mock=force:return+null 表示消费方对该服务的方法调用都直接返回 null 值,不发起远程调用。用来屏蔽不重要服务不可用时对调用方的影响。 还可以改为 mock=fail:return+null 表示消费方对该服务的方法调用失败后,再返回 null 值,不抛异常。用来容忍不重要服务不稳定时对调用方的影响

  • 相关阅读:
    gitlab授权登录
    mysql的sql_mode设置
    fork了别人项目怎么保持更新呢?
    memcache命令参数详解
    memcache 操作详解
    字符串拼接性能对比
    yum设置镜像
    ifconfig找不到命令怎么通过工具连
    this is incompatible with sql_mode=only_full_group_by
    jmeter切换语言
  • 原文地址:https://www.cnblogs.com/liuqingzhong/p/14182078.html
Copyright © 2020-2023  润新知