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