SpringCloud Fegin結合Ribbon實現負載均衡

gung123發表於2020-01-17

Fegin包含了Ribbon,可以直接實現負載均衡功能。這裡我們就在Ribbon的專案稍微進行改造下實現該功能。

首先在pom檔案新增Fegin的依賴包。

  <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>

然後在springcloud-ribbon-consumer專案的啟動類上新增@EnableFeignClients註解,啟用feign進行遠端呼叫。

新增完成之後,新建一個類,實現feign遠端呼叫。
程式碼如下:

  @FeignClient(name= "springcloud-ribbon-consumer2") 
    public interface HelloRemote {
        @RequestMapping(value = "/hello")
        public String hello(@RequestParam(value = "name") String name);
    }

最後在提供一個新的介面供外部呼叫。這裡就直接在之前的程式碼上新加一個介面了。
程式碼如下:

    @RestController
    public class ConsumerController {
       
        @Autowired
        RestTemplate restTemplate;
        
        @RequestMapping("/hello")
        public String hello() {
            return restTemplate.getForObject(");
        }
        
       
        @Autowired
        HelloRemote helloRemote;
        
        @RequestMapping("/hello/{name}")
        public String index(@PathVariable("name") String name) {
            System.out.println("接受到請求引數:"+name+",進行轉發到其他服務!");
            return helloRemote.hello(name);
        }
    }

新增完之後,重啟springcloud-ribbon-consumer服務,然後依舊重複訪問 該地址,瞭解springcloud架構可以加求求:三五三六二四七二五九
訪問的結果如下:

pancm,Hello World!
pancm,Hello World! 這是另一個服務!
pancm,Hello World!
pancm,Hello World! 這是另一個服務!
pancm,Hello World!
pancm,Hello World! 這是另一個服務!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952307/viewspace-2673764/,如需轉載,請註明出處,否則將追究法律責任。

相關文章