0
点赞
收藏
分享

微信扫一扫

【Java用法】微服务之间的相互调用方式之一,通过FeignClien


本文目录

一、背景描述

二、配置方法

2.1 添加maven依赖

2.2 启动类上添加@EnableFeignClients注解

2.3 配置文件application-local.yml中添加路径

2.4 微服务A中添加微服务B的接口

2.5 调用此接口

在最近做的项目中,由于之前做的各个服务都是相互独立的,但是业务要求调用其他已做好的服务的功能,于是就有了正在做的项目调用已经上线的服务的需求。

一、背景描述

新开发的大脑管理平台(微服务A),由于需要调用控制引擎中心(微服务B)的接口,也就是服务A写个接口调用服务B,不需要做任务业务逻辑,即透传给服务B,服务B的接口为机器人测试对话聊天功能。由于这两个是独立的服务,相互之前没有关联性,所以会牵出一个问题?这服务A怎么调用服务B。

微服务A、微服务B,两个服务的项目结构如下:

【Java用法】微服务之间的相互调用方式之一,通过FeignClien_java

二、配置方法

2.1 添加maven依赖

对于spring boot 2.0.0版本以上的,引用openfeign

<!--引入feign-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-openfeign</artifactId>
	<version>2.0.2.RELEASE</version>
</dependency>

在infrasture 目录中的 pom.xml 文件中添加 对微服务B的引用

<!-- 控制引擎服务 -->
        <dependency>
            <groupId>com.iot</groupId>
            <artifactId>back-control-engine-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

2.2 启动类上添加@EnableFeignClients注解

在服务A的启动类上添加@EnableFeignClients注解,使得该服务支持FeignClients功能。

@Slf4j
@SpringBootApplication(scanBasePackages = {"com.iot"})
@EnableDiscoveryClient
@EnableFeignClients(basePackages = "com.iot")
@MapperScan("com.iot.back.brain.platform.tunnel.database")
public class MainServer implements ApplicationRunner {

    public static void main(String[] args) {
        try {
            SpringApplication.run(MainServer.class, args);
        } catch (Exception e) {
            log.error("大脑管理平台项目启动失败!报错原因 ============== ", e);
        }
    }

    @Override
    public void run(ApplicationArguments args) throws Exception {
        log.info("恭喜你,大脑管理平台成功启动啦...");
    }
}

2.3 配置文件application-local.yml中添加路径

配置文件中添加如下配置,然后在类中通过 @FeignClient 注解获取

以下是 application-local.yml 配置文件中的配置内容(application-dev.yml、application-chk.yml、application-prod.yml 文件中也需要配置上):

##################### 其他微服务 #####################
feign:
    services:
        controlEngine: back-control-engine #控制引擎服务

2.4 微服务A中添加微服务B的接口

建一个包用于存放 feign 接口,放哪个目录下,没有强制规定

【Java用法】微服务之间的相互调用方式之一,通过FeignClien_spring_02

【Java用法】微服务之间的相互调用方式之一,通过FeignClien_spring boot_03

2.5 调用此接口

把这个接口当成本项目中的一个接口类正常注入调用即可。如图所示:

【Java用法】微服务之间的相互调用方式之一,通过FeignClien_spring cloud_04

拓展:另外一种调用方式也可供参考

【Java用法】微服务之间的相互调用方式之一,通过FeignClient客户端调用其他微服务的方法

完结!

举报

相关推荐

0 条评论