在企业项目中使用Nacos实现的功能操作,以及如何在自己的环境中搭建Nacos环境,包含demo
文档地址:Nacos 快速开始
在公司里面很多的服务以及环境都是自己搭建的所以我在这里就从零开始搭建Nacos环境,以及后面会有在公司项目中搭建使用,这里我们使用的是2.2.1
下载地址:?Releases · alibaba/nacos (github.com)
?访问慢或者访问不了,可以直接在我的博客中下载该版本地址如下
【免费】nacos-server-2.2.1.zip完整下载即用资源-CSDN文库
?接下来需要配置一下nacos配置文件
大家可以看文档上需要这样配置,在这里推荐一个在线工具?
Base64 在线编码解码 | Base64 加密解密 - Base64.us
?准备以上编码 12345678901234567890123456789012
KEY : 12345678901234567890123456789012
加密 :MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=
配置文件部分讲解
这个配置项用于在Nacos服务中设置数据库连接的URL、用户名和密码,以便于与数据库建立连接并进行数据的读写操作。默认是不打开的
?接下来配置前面加密解密的key值以及加密后的值直接在文件中搜索auth.plugin.nacos
进入nacos文件夹中的bin文件中? ?mac里面不会显示出详细的启动是否成功的日志需要查看输出的logs地址 下图有显示最后一行? ? ? windows是直接输出日志
sh startup.sh -m standalone
管理员打开cmd
startup.cmd -m standalone
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld"
curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"
sh shutdown.sh
shutdown.cmd
或者双击shutdown.cmd运行文件。
现在我使用的是传统的配置方式就是在 配置文件中假如这一行代码指定哪个模块,之后在controller包中的testcontroller创建引入这个配置。?
# 注册中心传统配置方式 Member是本模块
test.nacos=Member
?TestController
package com.jiawa.train.member.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 TestController {
// 测试接口
@Value("${test.nacos}") // 注入 变量名就是配置文件中配置的名字
private String testNacos;
@GetMapping("/hello")
public String hello() {
return String.format("Hello Nacos Config Center!", testNacos); // 使用前面配置的变量
}
}
对于简单的项目有自定义配置不经常修改的可以使用这种方式,但是对于企业来说这个方式是不行的,我需要开关,然后每次都要修改代码 再打包 部署不方便,而且没有那么多的时间来弄这些,所以我们使用的是下面的第二种方式
首先进入github来看看依赖 :不过我已经粘贴出来了?alibaba/spring-cloud-alibaba: Spring Cloud Alibaba provides a one-stop solution for application development for the distributed solutions of Alibaba middleware. (github.com)
?这个依赖写在父模块的pom.xml?
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2022.0.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
?在你的子模块,需要使用nacos配置中心的模块加入 配置中心的模块
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
之后新建配置文件来配置nacos
?bootstrap.properties
# 注册中心的名字
spring.application.name=member
## 启动环境 nacos会根据环境读取不同的配置dataid : member-dev.properties
spring.profiles.active=dev
## nacos server地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
## 配置中心文件后缀 默认properties
spring.cloud.nacos.config.file-extension=properties
?查看是否引入依赖了
?
?最后访问接口实现效果
?当我修改了nacos配置在idea的日志中可以查看到是否拿到key值,拿到key值就可以修改配置的内容
?这时候输出的值没有改变的话,在controller类中加一个注解。这个注解在你之后想要更换eureka注册中心时就不用修改代码
?值修改成功
?这篇讲述的是配置中心怎么使用