nacos配置管理&服务发现 (springcloud 篇)
1、配置管理
1 新建springcloud项目,添加maven依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-nacos-config</artifactId>
<version>0.2.1.RELEASE</version>
</dependency>
2 创建springcloud 配置文件 bootstrap.yml
#SpringCloudConfig 和 NacosConfig这种统一配置服务在springboot项目中初始化时,都是加载bootstrap.properties配置文件去初始化上下文.
#所以config client要配置config的相关配置就只能写到bootstrap.yml里了
spring:
cloud:
nacos:
config:
server-addr: localhost:8848 #nacos 服务地址
file-extension: yaml #读取格式
name: test #Data ID 不带后缀 如test.yaml 即 test
3 创建applocation.yml
server:
port: 8883
spring:
application:
name: config
4 创建java Demo
@RestController
@RefreshScope
public class MyController {
//people.name读取配置文件,wjh定义默认值
@Value("${people.name:wjh}")
private String name;
@RequestMapping("/get")
public String get() {
return name;
}
}
5 动态更新配置文件
- 进入UI:http://localhost:8848/nacos
- 配置管理->配置列表-> ➕
- Data ID:即文件名,与bootstrap.yml保持一致(如:test.yaml)
- Group:默认分组即可
- 选择配置格式,以yaml格式为例编辑内容如下
- 发布
people:
name: dhm
age: 22
6 启动springboot项目,查看读取配置文件内容
http://localhost:8883/get
2、服务提供者
1 创建springboot项目添加maven依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>0.2.1.RELEASE</version>
</dependency>
2 修改application.yml文件
server:
port: 8881
spring:
cloud:
nacos:
discovery:
server-addr: localhost:8848
application:
name: nacos-provider
3 修改启动类
@SpringBootApplication
@EnableDiscoveryClient//开启服务发现
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
@RestController
class TestController{
@RequestMapping("/say/{str}")
public Object say(@PathVariable String str){
System.out.println("you are say : "+ str);
return "you are say : "+ str;
}
}
}
4 启动项目,登陆UI:http://localhost:8848/nacos
查看:服务管理 --> 服务列表
3、服务消费者
1 创建springboot项目添加maven依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>0.2.1.RELEASE</version>
</dependency>
2 修改配置文件
server:
port: 8882
spring:
cloud:
nacos:
discovery:
server-addr: localhost:8848
application:
name: nacos-consumer
3 修改启动类
@SpringBootApplication
@EnableDiscoveryClient
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
@LoadBalanced
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
@RestController
class TestController{
@Autowired
RestTemplate restTemplate;
@RequestMapping("/say/{name}")
public Object say(@PathVariable String name) {
// 调用服务提供者
return restTemplate.getForObject("http://nacos-provider/say/" + name, String.class);
}
}
}
4 启动项目,登陆UI:http://localhost:8848/nacos
1 查看:服务管理 --> 服务列表
2 调用:http://localhost:8882/say/wenjiahao