• Dubbo特性之启动检查,负载均衡,多协议支持


    1、启动检查

    服务启动过程中验证服务提供者的可用性

    验证过程出现问题,则阻止整个Spring容器初始化

    服务启动检查可以尽可能早的发现服务问题

    某些场景下,如服务A调用服务B,服务B调用服务A,这样两个服务永远启动不了

    解决方法: 关闭启动检查

    2、负载均衡

    如A服务调用B服务,B服务有四个(部署在4台机器上),这样A根据一定的策略访问B服务,这就是负载均衡

    负载均衡的策略

    Guns-gateway调用guns-user

    设置服务提供者的负载均衡策略

     分别启动两个guns-user,端口分别为8083和8084, dubbo协议的端口分别为20881和20882

     然后调用Guns-gateway的接口,如授权接口

        @RequestMapping(value = "${jwt.auth-path}")
        public ResponseVO createAuthenticationToken(AuthRequest authRequest) {
    
           boolean validate = true;
           int userId = userAPI.login(authRequest.getUserName(),authRequest.getPassword());
           if(userId == 0){
               validate = false;
           }
    
            if (validate) {
                final String randomKey = jwtTokenUtil.getRandomKey();
                final String token = jwtTokenUtil.generateToken(""+ userId, randomKey);
                return ResponseVO.success(new AuthResponse(token, randomKey));
            } else {
                return ResponseVO.serviceFail("用户名或者密码错误");
            }
        }
    

      授权接口调用guns-user服务的login接口,最终采用轮询的负载均衡策略,依次调用guns-user的8083和8084

    3、多协议支持

    如下面的配置为dubbo协议

    spring:
      application:
        name: film-user
      dubbo:
        server: true
        registry: zookeeper://localhost:2181
        protocol:
          name: dubbo
          port: 20881
    

      

    多协议支撑

    Dubbo支持多种协议,最常见的协议是dubbo

    RMI, Hessian,HTTP,Redis, Memcached等多种协议

    协议对比

  • 相关阅读:
    oracle中获取当前整点和上一个小时整点,日期类型
    MYSQL中替换oracle中runum用法
    oracle 中备份表
    發生了不愉快的事情
    今年下雪了。。。
    VB.net下非常好用的实现FTP的类
    今年過節不回家了
    焕肤:不要暗沉
    不要打梦到的电话号码。。。
    關於IT職業的思考
  • 原文地址:https://www.cnblogs.com/linlf03/p/12846324.html
Copyright © 2020-2023  润新知