文章目录
- 引言【如果是想快速整合Nacos,就只需要看快速使用,如果想了解更多的用法以及原理,下面有了解Nacos更多】
- 【快速使用】
- 1、本地安装Nacos并启动
- 2、创建nacos-config子项目
- 3、nacos-config子项目pom中引入nacos依赖
- 4、创建启动类
- 目录结构
- NacosApplication启动类代码
- 5、创建bootstrap.yml配置文件
- 目录结构
- bootstrap.yml配置文件代码
- 6、在Nacos的test空间下添加nacos-config.yaml配置文件
- 7、启动NacosApplication启动类
- 【了解Nacos更多】
- Nacos的作用
- 发现
- 配置
- 管理
引言【如果是想快速整合Nacos,就只需要看快速使用,如果想了解更多的用法以及原理,下面有了解Nacos更多】
【快速使用】
1、本地安装Nacos并启动
2、创建nacos-config子项目
3、nacos-config子项目pom中引入nacos依赖
在这里我们不需要引入nacos的版本,因为在父项目pom中的dependencyManagement中我们已经对版本进行了管理
<dependencies>
<!-- Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
</dependencies>
4、创建启动类
目录结构
NacosApplication启动类代码
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
public class NacosApplication {
public static void main(String[] args) {
SpringApplication.run(NacosApplication.class, args);
}
}
5、创建bootstrap.yml配置文件
目录结构
bootstrap.yml配置文件代码
url:
nacos: localhost:8848 # Nacos地址
spring:
application:
name: nacos-config # 服务名称
# 命名空间
profiles:
active: test
# cloud 配置
cloud:
nacos:
discovery:
# 命名空间
namespace: ${spring.profiles.active}
# 注册中心地址
server-addr: ${url.nacos}
config:
namespace: ${spring.profiles.active}
file-extension: yaml
# 配置中心地址
server-addr: ${url.nacos}
6、在Nacos的test空间下添加nacos-config.yaml配置文件
我们选择在Nacos管理页面中添加配置文件,方便我们更好的管理配置,注意,配置文件名称必须跟服务名称一致。
7、启动NacosApplication启动类
启动程序后,进入Nacos管理页面
Nacos地址:http://localhost:8848/nacos/index.html
账号:nacos
密码:nacos
在Nacos页面中点击服务管理下的服务列表就能看到我们刚刚启动的nacos-config服务了
【了解Nacos更多】
Nacos的作用
Nacos的作用是致力于帮助我们发现、配置和管理微服务。
发现
当我们在某一个工程项目中引入Nacos的依赖,并启动项目,就能发现,我们的服务会注册在Nacos管理页面中,很多小伙伴都喜欢这种可视化页面,它方便我们能够更加直观的感受到。
配置
配置说的简单一些,就是可以把我们原先在项目中配置的yml文件抽取出来,配置的文件就可以动态载入,用文字描述的话可能会有点难以理解,我们在这里做个示例:
我们在Nacos配置页面中刚刚添加的nacos-config.yaml中增加一些配置数据
user:
name: 张三
age: 18
发布以后,我们去程序中写一个接口,去调用配置中的数据,目录、代码如下:
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController {
@Value("${user.name}")
private String name;
@Value("${user.age}")
private String age;
@GetMapping("/getUserInfo")
public String getUserInfo() {
return name + ":" + age;
}
}
调用地址:http://localhost:9001/user/getUserInfo
我们就能看到返回了我们配置中的返回值了,这是我们去Nacos中,把nacos-config.yaml配置文件更改一下数据,然后再次发布,发布完以后,再次调用这个接口
就能够发现,接口中获取的数据也就变成我们刚刚修改配置后的数据了,这样我们以后就能把这种配置写活
管理
大家在开发时使用测试环境,上线后使用正式环境,而这种环境切换,我们就可以通过Nacos管理页面,就比如我们刚刚使用test空间,我们在test空间中配置我们测试环境的配置,我们也可以再创建一个空间,代表我们线上环境的配置,这样,到时候我们就可以只需要在配置文件中更改一下使用的命名空间,就可以减少很多麻烦。