1. 程式人生 > >Spring Cloud ---- 服務消費與負載均衡(Rest + Ribbon )

Spring Cloud ---- 服務消費與負載均衡(Rest + Ribbon )

  上一篇主要寫了基於Eurake的服務的註冊,主要就是建立註冊中心,建立服務者,將服務者註冊到註冊中心,完成服務的暴露。這一篇主要寫服務的消費與服務消費的負載均衡。

  服務的呼叫方式有兩種,Rest + ribbon ,另一鍾是feign,feign集成了ribbon。這一篇主要說前者.

  因為服務消費者也是屬於client,並且還有對於ribbon的依賴,建立服務消費者工程需要引入jar包

spring-cloud-starter-netflix-eureka-client,spring-cloud-starter-netflix-ribbon。

1.配置檔案中要宣告註冊中心的地址,消費者註冊的埠號,消費者的應用名。

2.在主方法上新增@EnableEurakeClient 和 @EnableDiscoverClient

3.通過@Bean RestTemplate 注入容器,並且@LoadBalanced 啟動負載均衡功能

 

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
server:
  port: 8764
spring:
  application:
    name: service-ribbon
@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
public class ServiceRibbonApplication { public static void main(String[] args) { SpringApplication.run( ServiceRibbonApplication.class, args ); } @Bean @LoadBalanced RestTemplate restTemplate() { return new RestTemplate(); } }
@Service
public class HelloService {

    @Autowired
    RestTemplate restTemplate;

    
public String hiService(String name) { return restTemplate.getForObject("http://SERVICE-HI/hi?name="+name,String.class); } }

服務名稱的請求在傳送請求的時候會替換為對應的具體URL

@RestController
public class HelloControler {

    @Autowired
    HelloService helloService;

    @GetMapping(value = "/hi")
    public String hi(@RequestParam String name) {
        return helloService.hiService( name );
    }
}

採用不同的埠號啟動兩個服務消費者,在頁面進行多次請求,會迴圈採用不同的埠號(負載演算法後續補上)。

現在的服務架構我畫了個圖:很醜,對付著看吧

今天就先寫到這吧,睡覺睡覺.