认识Nacos与配置安装
当下流行的微服务架构,服务发现与注册中心是其中的关键组件,Nacos就是其中一个非常优秀、云原生的服务发现和配置中心,下面就简单介绍一下Nacos以及如何使用它来搭建服务。
什么是Nacos?
Nacos全称是Naming and Configuration Service,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos提供了一种简单和实用的方法来配置、管理、服务发现。下面是Nacos的一些特点:
支持基于DNS和HTTP的服务发现方式。
支持动态配置服务,可以随时在线添加、修改、删除配置信息,而不需要重新部署、重启。
支持集群环境中扩展节点,保证高可用和可扩展性。
支持服务和实例的健康检查,可以快速发现问题的服务和实例。
支持丰富的 Rest API,开发和交互更加便捷和规范化。
Nacos的核心概念
在深入了解如何使用Nacos之前,我们需要了解一些核心概念,这样才能更好地理解它的原理和机制。
Namespace: 命名空间是逻辑隔离的一种方式。命名空间实现了资源在空间上的隔离,可以有效的避免资源冲突。
Cluster: 集群是 Nacos 高可用的体现,一个集群包含多个节点,Nacos 的所有功能均以集群的方式对外提供服务。
Service: 服务是指提供一定功能的程序,一个服务中可以包含多个实例。
Instance: 实例指同一个服务的一份拷贝,服务会通过注册中心向外界暴露出多个实例,以实现横向扩展、分布式部署和负载均衡的目的。
Configuration: 配置即为应用启动时需要加载的配置信息。
Configuration Group: 配置分组是为了将一些相同业务逻辑的配置信息分成一组,方便管理。
Configuration Data ID: Configuration Data ID 就是一份配置的特定标识。
Snapshot:该 API 会返回当前 Name Server 缓存的 Server 状态信息,包括心跳包信息,服务信息,实例信息等。
Nacos的安装和使用
下载Nacos
Nacos可以在官网下载,
下载地址:https://github.com/alibaba/nacos/releases
需要下载Nacos Server压缩包,这里我们选择 Nacos Server Manager,可以通过命令行实现命令执行。
配置Nacos
Nacos 的配置非常简单。直接在 conf 目录下编辑 application.properties 文件即可。这里我们修改以下配置:
# 数据库地址
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://host:port/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos
db.password=nacos_password
# 指定IP,配置Nacos不计workspace
nacos.server.ip=xxx.xxx.xxx.xxx
# 指定端口
nacos.server.port=8848
其中,db.url 中的 hostname 以及 port 均需替换为业务系统 MySQL 数据库的连接地址。nacos.ip 和 nacos.port 分别指定了当前使用网络中的 IP 和监听端口号,作为访问该服务的入口。
启动Nacos
Nacos 部署完成后,我们需要启动该服务。在 Nacos 目录下,执行以下命令即可启动 Nacos。
sh bin/startup.sh -m standalone
执行以上命令后,我们可以通过浏览器访问 Nacos 的 Web 控制台。默认登录名和账号齐名均为 nacos。
http://localhost:8848/nacos
Nacos配置中心
Nacos提供了一个内部配置中心,可以用来集中管理应用的配置信息。
发布配置
在 Nacos 的默认首页,点击 配置管理 > 配置列表 , 然后点击右上角的"+ 新建"按钮,填写相关配置信息,比如:
- Data ID:输入配置 ID application.yaml
- Group :输入配置的分组 DEFAULT_GROUP
- Content:输入你要发布的配置内容
以上信息简单设置完,保存即可。
获取配置
在应用中,我们可以通过以下方式获取配置信息。首先,需要添加如下依赖:
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>x.y.z</version>
</dependency>
其中,x.y.z 指的是 Nacos Client 的版本。
然后在 Java 代码中,我们可以使用配置管理组件里的 ConfigService 获取配置信息。示例代码如下:
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.config.annotation.NacosValue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@SpringBootApplication
public class MyApp {
@Autowired
private ConfigService configService;
@NacosValue(value = "${config.key:default value}", autoRefreshed = true)
private String configValue;
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
@GetMapping("/config")
public String getConfig() {
String content = configService.getConfig("application.yaml", "DEFAULT_GROUP", 5000);
return content;
}
@GetMapping("/configvalue")
public String getConfigValue() {
return configValue;
}
}
如上代码,我们通过引入 nacos-client 依赖,注入 ConfigService 实例,使用该工具类提供的 getConfig() 方法获取配置数据,并在获取到配置后,将配置值返回。同时,在该示例中,我们还使用了 @NacosValue 注解将配置的值绑定到 configValue 属性上。
以上便是使用 Nacos 管理配置的相关内容,更多相关的使用方法和功能信息,可以到 Nacos 的官网 https://nacos.io/zh-cn/docs/quick-start.html 查阅。
全部评论