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等多种协议

协议对比

原文地址:https://www.cnblogs.com/linlf03/p/12846324.html