openfeign可与nacos集成实现服务服务调用

openfeign是一个封装调用请求l的接口,可以使用url进行接口调用,也可以集成nacos使用服务发现及调用功能。

与nacos集成调用服务:

使用nacos的服务注册及发现功能,使用openfeign的@FeignClient()注解调用对应服务

client 请求服务端:

因为是请求服务向被调用服务端发送调用请求,只需要请求服务进行url的封装,所以只需在请求服务端引入openfeign的依赖,被调用服务端不用添加依赖。

  1. 首先请求服务端添加openfeign依赖:

            org.springframework.cloud
            spring-cloud-starter-openfeign
        
  1. 在请求服务端的需要调用其他服务的接口处加注解@FeignClient():
    例如我在我的client项目的fallback–>SourceMaterialClient接口上加注解,
@FeignClient(name = "fileUploadServer", path = "/fileUploadServer", configuration = FeignConfiguration.class, fallback = FileUploadClientFallBack.class)
// FeignConfiguration.class是我的配置Configuration类,FileUploadClientFallBack.class是我的
public interface SourceMaterialClient {
    /**
     * 功能描述:检查目录是否存在
     */
    @RequestMapping(value = "/source/checkDirectory", consumes = "application/json;charset=UTF-8", method = RequestMethod.POST)
    OptResult checkDirectory(@RequestBody InputPathData inputPathData);
}

@FeignClient注解是封装请求参数和路径等的。
其中,name = "fileUploadServer"是被调用的服务名,path = "/fileUploadServer"是服务下路径。
在方法注解 @RequestMapping中的value = "/source/checkDirectory"是被调用服务的对应被调用执行的方法。
fallback:定义容错的处理类,当调用远程接口失败或超时时,会调用对应接口的容错逻辑,fallback指定的类必须实现@FeignClient标记的接口。
configuration: Feign配置类,可以自定义Feign的Encoder、Decoder、LogLevel、Contract。
consumes :数据格式及编码

openfeign的请求:nacos上注册的fileUploadServer服务下的路径/fileUploadServer/source/checkDirectory指向的执行方法

server 被调用服务端:

  1. 在服务端的启动类上加注解@EnableFeignClients,意思:作为openfeign的客户端,能够被其他服务调用。

接口调用:

调用接口,使用@FeignClient的url参数:

/**
 * @Description:使用 Feign 访问 Github 查询 API
 */
@FeignClient(name = "github-client", url = "https://api.github.com")
public interface GitHubFeign {

    @RequestMapping(
            value = "/search/repositories",
            method = RequestMethod.GET,
            produces = MediaType.APPLICATION_JSON_UTF8_VALUE
    )
    String searchRepo(@RequestParam("q") String q);

}

你可能感兴趣的:(openfeign可与nacos集成实现服务服务调用)