Nacos
一、 配置中心
- 定义:配置中心就是一种统一管理各种应用配置的基础服务组件。
- 配置流程:
- 用户在配置中心更新配置
- 配置中心通知服务,服务从配置中心拉取配置
- 特性:
- 配置项容易读取和修改。
- 分布式环境下应用配置的可管理性,即提供远程管理配置的能力;
- 支持对配置的修改的检视以把控风险;
- 可以查看配置修改的历史记录;
- 不同部署环境下应用配置的隔离性
1.2 配置中心对比
从配置中心角度来看,性能方面Nacos的读写性能最高,Apollo次之,Spring Cloud Config依赖Git场景不适合开 放的大规模自动化运维API。功能方面Apollo最为完善,nacos具有Apollo大部分配置管理功能,而Spring Cloud Config不带运维管理界面,需要自行开发。Nacos的一大优势是整合了注册中心、配置中心功能,部署和操作相比 Apollo都要直观简单,因此它简化了架构复杂度,并减轻运维及部署工作。
二、Nacos是什么?
2.1 介绍
- 简述:Nacos是阿里的一个开源产品,它是针对微服务架构中的服务发现、配置管理、服务治理的综合型解决方案。
- 官方:Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务 发现、服务配置管理、服务及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构的服务基础设施。
- 官网地址:https://nacos.io
2.2 作用
- 服务发现与服务健康检查:Nacos使服务更容易注册,并通过DNS或HTTP接口发现其他服务,Nacos还提供服务的实时健康检查,以防 止向不健康的主机或服务实例发送请求。
- 动态配置管理:动态配置服务允许您在所有环境中以集中和动态的方式管理所有服务的配置。Nacos消除了在更新配置时重新 部署应用程序,这使配置的更改更加高效和灵活。
- 动态DNS服务:Nacos提供基于DNS 协议的服务发现能力,旨在支持异构语言的服务发现,支持将注册在Nacos上的服务以 域名的方式暴露端点,让三方应用方便的查阅及发现。
- 服务和元数据管理:Nacos 能让您从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周 期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略。
三、安装nacos
3.1 docker部署nacos
- 拉取镜像
docker pull nacos/nacos-server:1.3.0
- 创建容器
docker run \
> --name nacos \
> -p 8848:8848 \
> -e MODE=standalone \
> -d nacos/nacos-server:1.3.0
- 浏览器访问
访问地址:http://虚拟机ip:8848/nacos
用户名、密码:nacos
3.2 Windows下
- 下载压缩包,并解压
下载地址:https://github.com/alibaba/nacos/releases - 双击startup.cmd文件
- 访问:http://127.0.0.1:8848/nacos
3.3 linux安装
unzip nacos‐server‐$version.zip 或者 tar ‐xvf nacos‐server‐$version.tar.gz
- 进入bin目录,启动
cd nacos/bin
sh startup.sh -m standalone
四、相关配置
4.1 curl测试
- 使用curl对nacos配置管理进行测试,此命令是新增一条nacos配置
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"
4.2 异常
- 异常信息:
HTTP Status 505 – HTTP Version Not Supported
- 异常原因:请求路径有空格
4.3 数据库连接
- 先创建一个名为nacos-config的数据库,然后执行nacos/config目录下的nacos-mysql.sql文件。
- 修改同目录下application.yml配置文件,增加MySQL的连接信息
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.5.128:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456