創建兩個項目,服務提供者service-offer和服務消費者service-consumer
一、service-offer的pom文件
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.5.RELEASE</version> </dependency>
啟動類上添加兩個注解 @EnableDiscoveryClient @EnableFeignClients
yml配置
server:
port: 8183
spring:
application:
name: service-offer
cloud:
nacos:
discovery:
server-addr: localhost:8848
提供一個API
@RestController public class HelloController { @RequestMapping("/hello") public String hello(){ return "hello world"; } }
服務提供者完成
二、創建服務消費者
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.5.RELEASE</version> <!-- 排除nacos中的ribbon依賴,否則會報錯 --> <exclusions> <exclusion> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-loadbalancer</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
啟動類:添加注解
@EnableDiscoveryClient
@EnableFeignClients
yml配置
spring:
application:
name: service-consumer
cloud:
nacos:
discovery:
server-addr: localhost:8848
server:
port: 8184
創建feign接口
@FeignClient("service-offer")//填寫配置的server name
public interface ProvideClient {
@RequestMapping("/hello")
String hello();
}
並調用該接口
@RestController public class HelloController { @Autowired private ProvideClient provideClient; @RequestMapping("/helloWorld") public String hello(){ return provideClient.hello(); } }
調用成功,訪問http://localhost:8848/nacos/index.html,用戶名密碼都是nacos,登錄可查看服務狀態
訪問http://localhost:8184/helloWorld,訪問成功
