work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

 

协议对比