从springboot到springcloud第四篇----springcloud feign

上一章写了ribbon如何实现负载均衡,

这次搭建feign的负载均衡(feign整合了ribbon和hystrix熔断器(下一章添加))

 

一、创建feign-client服务

从springboot到springcloud第四篇----springcloud feign_第1张图片

二、修改配置文件

spring.application.name=feign-client

# 应用服务 WEB 访问端口
server.port=8600

#服务中心地址
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/



三、在启动类上添加两个注解

@EnableEurekaClient
@EnableFeignClients
package com.example.feignclient;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class FeignClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(FeignClientApplication.class, args);
    }

}

四、创建一个service接口调用eureka-client的服务

package com.example.feignclient.service;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@FeignClient(value = "eureka-client")
public interface EurekaClientService {

    @GetMapping("/index")
    String indexMessage();
}

五、创建一个外部调用的controller

package com.example.feignclient.controller;

import com.example.feignclient.service.EurekaClientService;
import com.netflix.discovery.converters.Auto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class EurekaClientController {

    @Autowired
    private EurekaClientService eurekaClientService;

    @GetMapping("/index")
    public String index(){
        return eurekaClientService.indexMessage();
    }
}

六、刷新eureka服务监控中心测试

从springboot到springcloud第四篇----springcloud feign_第2张图片

 

七、 访问feign-client服务

从springboot到springcloud第四篇----springcloud feign_第3张图片

 

后语:

ribbon和feign的主要区别:

ribbon:使用RestTemplate模拟http请求发送给其他服务(面向服务)

feign:定义接口和抽象方法进行调用(面向接口)

 

源码地址: https://github.com/houfanGitHub/springcloud.git

 

你可能感兴趣的:(java,springcloud)