当前位置:首页 > 行业动态 > 正文

springcloud负载均衡怎么搭建

Spring Cloud负载均衡通常使用Ribbon和Eureka实现,以下是搭建步骤:

1. 添加依赖

pom.xml中添加以下依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>springcloudstarternetflixeurekaclient</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>springcloudstarternetflixribbon</artifactId>
</dependency>

2. 配置Eureka Server

创建一个application.yml文件,并添加以下配置:

springcloud负载均衡怎么搭建  第1张

server:
  port: 8761
eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

3. 创建服务提供者

创建一个名为provider的项目,并在application.yml中添加以下配置:

spring:
  application:
    name: provider
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

创建一个Controller类,如下所示:

@RestController
public class ProviderController {
    @Value("${server.port}")
    private String port;
    @GetMapping("/hi")
    public String home(@RequestParam String name) {
        return "Hi " + name + ", I am from port:" + port;
    }
}

4. 创建服务消费者

创建一个名为consumer的项目,并在application.yml中添加以下配置:

spring:
  application:
    name: consumer
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

创建一个Service类,如下所示:

@Service
public class HiService {
    @Autowired
    private RestTemplate restTemplate;
    public String sayHi(String name) {
        return restTemplate.getForObject("http://provider/hi?name=" + name, String.class);
    }
}

创建一个Controller类,如下所示:

@RestController
public class ConsumerController {
    @Autowired
    private HiService hiService;
    @GetMapping("/hi")
    public String home(@RequestParam String name) {
        return hiService.sayHi(name);
    }
}

5. 启动项目

首先启动Eureka Server,然后启动providerconsumer,在浏览器中访问http://localhost:8082/hi?name=test,可以看到从provider返回的响应。

0