分布式系统-配置中心-NACOS介绍及使用

60 阅读2分钟

本文主要介绍基于NACOS 2.3.2版本安装以及常见使用

0. NACOS介绍

一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

image.png

基本架构如下

image.png

相关接口说明

端口与主端口的偏移量描述
88480主端口,客户端、控制台及OpenAPI所使用的HTTP端口
98481000客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求
98491001服务端gRPC请求服务端端口,用于服务间同步等
7848-1000Jraft请求服务端端口,用于处理服务端间的Raft相关请求

1.前置操作

1.1 Ubuntu20.04 新增nacos用户

toby@TOBY-HYW:~$ sudo mkdir /home/nacos
toby@TOBY-HYW:~$ sudo useradd -d /home/nacos nacos
toby@TOBY-HYW:~$ sudo passwd nacos
toby@TOBY-HYW:~$ sudo chown -R redis:redis /home/redis

1.2 预制MYSQL表结构

NACOS对应的表DDL在github上,URL为:github.com/alibaba/nac… 先创建db,然后执行上述ddl命令

mysql> CREATE DATABASE nacos CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Query OK, 1 row affected (0.00 sec)
mysql> show databases like "nacos%";
+-------------------+
| Database (nacos%) |
+-------------------+
| nacos             |
+-------------------+
1 row in set (0.00 sec)
...
mysql> show tables;
+----------------------+
| Tables_in_nacos      |
+----------------------+
| config_info          |
| config_info_aggr     |
| config_info_beta     |
| config_info_tag      |
| config_tags_relation |
| group_capacity       |
| his_config_info      |
| permissions          |
| roles                |
| tenant_capacity      |
| tenant_info          |
| users                |
+----------------------+
12 rows in set (0.00 sec)

2.启动

参考官方文章 集群部署说明

2.1 下载最新安装包

最新稳定版本 安装后文件目录如下

image.png

2.2 修改配置文件

application.properties 主要修改数据源相关配置,改为mysql

image.png

2.3 启动

本次使用的ubuntu系统,需要使用bash启动,否则执行会报错
先单机版跑一下

bash /home/nacos/nacos8848/bin/startup.sh -m standalone
bash /home/nacos/nacos8848/bin/shutdown.sh

启动完之后在启动日志里面有/home/nacos/nacos8848/logs/start.out
里面有控制台路径地址

image.png

3. 验证

3.1 获取配置操作

在管理台新增test

image.png

C:\Users\Toby>curl -X GET "http://172.17.108.172:8848/nacos/v1/cs/configs?dataId=test&group=DEFAULT_GROUP"
{"test":123}
C:\Users\Toby>curl -X POST "http://172.17.108.172:8848/nacos/v1/cs/configs?dataId=test&group=DEFAULT_GROUP&content=%7B%22test%22%3A1231%7D%22"
true

3.2 其他运用

作为dubbo和spring cloud gateway的注册中心

参考文档
nacos集群ubuntu startup.sh: 86: [[: not found
集群部署说明
github代码地址