首先创建两个工程:nacos-provider、nacos-consumer
在创建一个消费方
server.port=8070
spring.application.name=service-provider
# 自定义参数
myName=nacos
package com.kcbg.providerdemo.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@Value("${myName}")
private String name;
@GetMapping("hello")
public String hello(){
return "hello " + name;
}
}
然后启动provider生产者去浏览器访问
http://localhost:8070/hello
然后去写我们的消费者
server.port=8080
spring.application.name=service-consumer
package com.kcbg.consumerdemo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HiController {
@GetMapping("hi")
public String hi() {
return "hi provider!";
}
}
启动consumer(消费者)去浏览器访问
http://localhost:8080/hi
生产者和消费者添加到nacos中
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
<!-- SpringCloud的依赖 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
在配置文件中加入
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
然后再启动类中加入一个注释
@EnableDiscoveryClient
重新启动项目
消费者注册到nacos
第一步还是加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>0.2.2.RELEASE</version>
</dependency>
<!-- SpringCloud的依赖 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
在application.properties中配置nacos的服务名及服务地址:同生产者
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
还是启动类加注解
@EnableDiscoveryClient
再次启动项目
使用feign调用服务再消费者中加
第一步还是加架包
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>0.2.2.RELEASE</version>
</dependency>
第二步加注释
@EnableFeignClients
第三步加一个接口
package com.kcbg.consumerdemo.feign;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
@FeignClient("service-provider")
public interface ProviderClient {
@GetMapping("hello")
public String hello();
}
第四步controll层调用这个接口
package com.kcbg.consumerdemo.controller;
import com.kcbg.consumerdemo.feign.ProviderClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HiController {
@Autowired
private ProviderClient providerClient;
@GetMapping("hi")
public String hi() {
String hello=this.providerClient.hello();
return "hi provider!================="+hello;
}
}
重新启动项目访问这个接口