Лента Spring Cloud, служба вызова Spring RestTemplate

На основе кластера Eureka Server с использованием Spring RestTemplate в сочетании с функцией Ribbon для вызова службы использование очень простое.

1. Создайте новый модуль в основном проекте, eurekaclient, maven dependency,

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>

2. Файл конфигурации application.yml,

spring:
  application:
    name: eurekaclient
server:
  port: 8080
  shutdown: graceful
eureka:
  client:
    service-url:
      defaultZone: http://peer1:8761/eureka/

 

3. Определите RestTemplate в классе запуска и поддержите Ribbon, чтобы включить балансировку нагрузки с помощью аннотации Spring Cloud @LoadBalanced.

@LoadBalanced
@Bean
public RestTemplate restTemplate() {
    return new RestTemplate();
}

4. Разработайте интерфейс в службе logservice для вызова службы eurekaclient,

@RestController
@RequestMapping("log")
public class LogController {

    @GetMapping("logInfo")
    public String logInfo(String logInfo) {
        System.out.println(logInfo);
        return logInfo;
    }

}

5. Определите класс Service в eurekaclient, добавьте его в контейнер с помощью аннотации @Component и используйте restTemplate для вызова службы logservice.

@Component
public class LogServiceClient {

    @Autowired
    private RestTemplate restTemplate;

    public String logInfo(String logInfo) {
        return restTemplate.getForObject("http://logservice/log/logInfo?logInfo="+logInfo, String.class);
    }

}

Определите интерфейс в eurekaclient, вызовите метод logInfo класса Service на шаге 5,

@RestController
@RequestMapping("client")
public class TestController {
    @Autowired
    private LogServiceClient logServiceClient;

    @GetMapping("getClientInfo")
    public String getClientInfo() {
        String info = "log info";
        return logServiceClient.logInfo(info);
    }
}

6. Введите адрес интерфейса, указанный в eurekaclient в браузере, http: // localhost: 8080 / client / getClientInfo.

 

7. Также очень удобно тестировать балансировку нагрузки ленты, нужно только запустить несколько экземпляров logservice.

 

 

 

 

рекомендация

отblog.csdn.net/suoyx/article/details/114102636
рекомендация