实现客户端负载均衡

2022-09-15 14:10:01 浏览数 (1)

1、在没有"服务中心"的情况下,实现客户端负载均衡

1.1、创建Spring Cloud应用,添加Ribbon和Web依赖

1.2、编写配置

代码语言:javascript复制
spring.application.name=ribbon
server.port=50005
provider.ribbon.listOfServers=localhost:50003,localhost:50004

1.3、开启客户端负载均衡

代码语言:javascript复制
@SpringBootApplication
public class ConuserApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConuserApplication.class, args);
    }
    
    //定义远程调用RestTemplate Bean
    @Bean
    @LoadBalanced //开启负载均衡
    RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

1.4、编写负载均衡控制器

代码语言:javascript复制
@RestController
public class HelloController {
    
    @Autowired
    RestTemplate restTemplate;
    
    @GetMapping("/hello")
    public String hello(){
        return restTemplate.getForObject("http://provider/" "hello",String.class);
    }
}

1.5、修改Provider项目配置文件

代码语言:javascript复制
spring.application.name=provider
server.port=${PORT:50003}
provider.name=${NAME:provider-1}
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.client.service-url.defaultZone=http://eureka01:50001/eureka/,http://eureka02:50002//eureka/
eureka.instance.prefer-ip-address=true
eureka.instance.ip-address=127.0.0.1
eureka.instance.instance-id=${spring.application.name}:${server.port}

1.6、编写配置脚本

1.7、启动服务提供者和Ribbon应用

访问http://localhost:50005/hello

0 人点赞