1.引入SpringCloudAlibaba依赖:
<!--springcloudalibaba-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2.nacos注册中心:
引入nacos服务注册发现依赖
<!--nacos服务注册发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
yml文件中配置注册中心地址
spring:
#服务名称
application:
name: abc-service
#配置nacos服务器注册中心地址
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8081
在启动类上加注解@EnableDiscoveryClient
@SpringBootApplication
@EnableDiscoveryClient
public class ServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceApplication.class, args);
}
}
3.注册好两个服务之间可远程调用,远程调用使用Feign组件
引入feign组件依赖
<!--远程调用feign组件依赖,可调用其他服务接口-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
在启动类上加注解@EnableFeignClients
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class ServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceApplication.class, args);
}
}
创建feign包,在feign包中创建feign服务接口feignService:@FeignClient("服务名"),@RequestMapping("调用接口路径")
package com.abc.service.feign;
import com.abc.common.utils.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestMapping;
@FeignClient("name-service")
public interface feignService {
@RequestMapping("/abc/getName")
R getName(@RequestParam String params);
}