Feign的使用

        最近使用有个新项目,需要调很多老项目的接口,前端直接调原来的接口有点不统一,显得很乱,所以打算用feign直接新项目调老项目接口,每一块单独开一个controller;

        使用的时候发现feign不用非得用注册中心来发现其他微服务,调用完整路径也可以,这样也省去很多对老项目的侵入;

        Feign 默认使用 Ribbon 作为负载均衡器。确保你的项目中包含了 Ribbon 的依赖


    org.springframework.cloud
    spring-cloud-starter-netflix-ribbon

1.不用eureka,直接调用完整接口路径

1.1 导入Feign依赖


        org.springframework.cloud
        spring-cloud-starter-openfeign

1.2 配置文件中配置Feign

feign:
  client:
    config:
      default:
        #超时时间、
        connectTimeout: 5000
        readTimeout: 5000

 1.3 创建FeignClient类

/**
 * xxx相关服务
 */
@FeignClient(name = "xxx",url = "xxx:xxx")  // 目标服务的URL
public interface xxxFeignClient {

    @PostMapping("/xxx/xxx")
    public Result xxx();

}
  • 服务名字可以随便 

2.用eureka

        eureka依赖:

服务端:(eureka微服务)

 

        org.springframework.cloud

        spring-cloud-starter-netflix-eureka-server

客户端:(其他使用eureka的微服务)

 

        org.springframework.cloud 

        spring-cloud-starter-netflix-eureka-client

        用eureka跟不用的FeignClient类区别

@FeignClient(name = "SYSTEM-ENVIRONMENTALLY")

  • 注意服务名字要全大写,eureka注册会把服务名字大写  

        各个微服务要配置自己的服务名称、并连接到eureka注册中心 

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