父工程
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.4.10</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2020.0.4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2021.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
生产者-模块
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
</dependencies>
application.yml
server:
port: 8080
spring:
application:
name: provider1 #提供者服务名
cloud:
nacos:
discover:
server-addr: 127.0.0.1:8848
discovery:
namespace: 604b4744-bee9-446a-9273-b17db30c8965 #开发环境命名空间
group: TEST_GROUP
controller.java
@RestController
public class ProviderController {
@GetMapping("/sayHi")
public String sayHi(){
return "hello provider";
}
}
启动类
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class,args);
}
}
nacos 图形界面查看服务注册
消费者–模块
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<exclusions>
<exclusion>
<groupId>com.netflix.ribbon</groupId>
<artifactId>ribbon</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
</dependencies>
application.yml
server:
port: 8081
spring:
application:
name: consumber #消费者服务名
cloud:
nacos:
discover:
server-addr: 127.0.0.1:8848
discovery:
namespace: 604b4744-bee9-446a-9273-b17db30c8965 #开发环境namespace
group: TEST_GROUP
接口:
@FeignClient("provider1")
public interface ProviderClient {
@GetMapping("/sayHi")
public String sayHi();
}
controller.java
@RestController
public class ConsumberController {
@Autowired
private ProviderClient providerClient ;
@GetMapping("/client")
public String client(){
return providerClient.sayHi();
}
}
启动类:
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class ConsumberApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumberApplication.class,args);
}
}
nacos查看注册
测试: