Nacos单节点部署
前言
概览
Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
什么是 Nacos?
服务(Service)是 Nacos 世界的一等公民。Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理:
Kubernetes Service
gRPC & Dubbo RPC Service
Spring Cloud RESTful Service
Nacos 的关键特性包括:
- 服务发现和服务健康监测 Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生SDK、OpenAPI、或一个独立的Agent TODO注册 Service 后,服务消费者可以使用DNS TODO 或HTTP&API查找和发现服务。 Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。Nacos 支持传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查。 对于复杂的云环境和网络拓扑环境中(如 VPC、边缘网络等)服务的健康检查,Nacos 提供了 agent 上报模式和服务端主动检测2种健康检查模式。Nacos 还提供了统一的健康检查仪表盘,帮助您根据健康状态管理服务的可用性及流量。
- 动态配置服务 动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。 动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷。 配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。 Nacos 提供了一个简洁易用的UI (控制台样例 Demo) 帮助您管理所有的服务和应用的配置。Nacos 还提供包括配置版本跟踪、金丝雀发布、一键回滚配置以及客户端配置更新状态跟踪在内的一系列开箱即用的配置管理特性,帮助您更安全地在生产环境中管理配置变更和降低配置变更带来的风险。
- 动态 DNS 服务 动态 DNS 服务支持权重路由,让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以 DNS 协议为基础的服务发现,以帮助您消除耦合到厂商私有服务发现 API 上的风险。 Nacos 提供了一些简单的 DNS APIs TODO 帮助您管理服务的关联域名和可用的 IP:PORT 列表.
- 服务及其元数据管理 Nacos 能让您从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 metrics 统计数据。 更多的特性列表 …
Nacos 地图
一图看懂 Nacos,下面架构部分会详细介绍。
- 特性大图:要从功能特性,非功能特性,全面介绍我们要解的问题域的特性诉求
- 架构大图:通过清晰架构,让您快速进入 Nacos 世界
- 业务大图:利用当前特性可以支持的业务场景,及其最佳实践
- 生态大图:系统梳理 Nacos 和主流技术生态的关系
- 优势大图:展示 Nacos 核心竞争力
- 战略大图:要从战略到战术层面讲 Nacos 的宏观优势
Nacos 生态图
如 Nacos 全景图所示,Nacos 无缝支持一些主流的开源生态,例如
Spring Cloud
Apache Dubbo and Dubbo Mesh
Kubernetes and CNCF
使用 Nacos 简化服务发现、配置管理、服务治理及管理的解决方案,让微服务的发现、管理、共享、组合更加容易。
操作环境
IP地址 | 操作环境 | 运行资源 | 备注 |
---|---|---|---|
192.168.8.88 | Centos7.5 | 2C8G | JDK、MySQL、Nacos |
一、安装JDK环境
1.1 上传安装包
1.2 解压安装包
代码语言:javascript复制[root@localhost packages]# tar -zxf jdk-8u171-linux-x64.tar.gz -C /usr/local/
[root@localhost packages]# cd /usr/local
[root@localhost local]# mv jdk1.8.0_171/ java
1.3 编写环境变量文件
代码语言:javascript复制[root@localhost local]# vim /etc/profile
#尾部添加
export JAVA_HOME=/usr/local/java
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
[root@localhost local]# source /etc/profile
1.4 验证JDK版本
代码语言:javascript复制[root@localhost local]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
二、安装MySQL数据库
2.1 将rpm安装包上传到服务器
2.2 创建数据库文件夹
代码语言:javascript复制[root@localhost mysql]# mkdir /data
2.3 关闭沙盒、防火墙
代码语言:javascript复制vim /etc/selinux/config
#修改
SELINUX=disabled
systemctl stop firewalld && systemctl disable firewalld
2.4 重启服务器
代码语言:javascript复制reboot
2.5 安装MySQL
代码语言:javascript复制[root@localhost mysql]# rpm -Uvh /root/packages/mysql/*.rpm --nodeps --force
2.6 修改/etc/my.cnf
代码语言:javascript复制vim /etc/my.cnf
[mysqld]
server_id=1
log_bin = /data/mysql/mysql-bin
max_connections=1000
lower_case_table_names = 1
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
expire_logs_days=1
datadir=/data/mysql
socket=/data/mysql/mysql.sock
max_allowed_packet=4G
wait_timeout=288000
interactive_timeout = 288000
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/data/mysql/mysql.sock
2.7 启动MySQL
代码语言:javascript复制systemctl start mysqld.service
2.8 查看MySQL运行状态
代码语言:javascript复制systemctl status mysqld.service
2.9 查看初始密码
代码语言:javascript复制grep "password" /var/log/mysqld.log
2.10 进入MySQL数据库
代码语言:javascript复制[root@localhost mysql]# mysql -uroot -p
Enter password: 输入从日志获取的密码
2.11 修改密码策略
代码语言:javascript复制set global validate_password_policy=0;
set global validate_password_length=1;
2.12 修改密码
代码语言:javascript复制ALTER USER 'root'@'localhost' IDENTIFIED BY '数据库密码';
2.13 远程连接数据库登录授权
代码语言:javascript复制grant all on *.* to root@'%' identified by '数据库密码';
2.14 MySQL基本命令
代码语言:javascript复制#设置开机自启动
systemctl enable mysqld
#重启数据库
systemctl restart mysqld
#开启数据库
systemctl start mysqld
#停止数据库
systemctl stop mysqld
三、Nacos部署
3.1 上传Nacos安装包
3.2 解压Nacos
代码语言:javascript复制[root@localhost packages]# tar -zxf nacos-server-2.2.3.tar.gz
3.3 使用navicat连接数据库
3.4 新建nacos数据库并修改编码集
3.5 导入数据库配置文件
从服务器中将mysql-schema.sql文件导出到电脑
或者 在主机将nacos的安装包解压同样可以获取到sql文件
使用navicat导入sql文件
或者 可以通过终端进入MySQL数据库进行导入
代码语言:javascript复制[root@localhost ~]# mysql -uroot -p
Enter password:#输入密码
mysql> use nacos;
Database changed
mysql> source /root/packages/nacos/conf/mysql-schema.sql;
3.6 修改nacos相关配置文件
进入conf目录,复制一份cluster.conf.example,修改名称为cluster.conf
代码语言:javascript复制[root@localhost conf]# pwd
/root/packages/nacos/conf
[root@localhost conf]# cp cluster.conf.example cluster.conf
修改cluster.conf内容
代码语言:javascript复制[root@localhost conf]# vi cluster.conf
修改application.properties文件
代码语言:javascript复制[root@localhost conf]# vi application.properties
前面的数字为行号,可能有所不同,以实际为准
代码语言:javascript复制#修改端口号
#23#
server.port=8848
#119#
server.tomcat.accesslog.enabled=false
#开启权鉴
#138#
nacos.core.auth.enabled=true
#141#
nacos.core.auth.caching.enabled=true
#144#
nacos.core.auth.enable.userAgentAuthWhite=false
#148#
nacos.core.auth.server.identity.key=example
#149#
nacos.core.auth.server.identity.value=example
#156#
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234582254644945479
#添加配置(注意修改数据库地址和密码)
#37取消注释#
spring.sql.init.platform=mysql
### Count of DB:
#40取消注释#
db.num=1
### Connect URL of DB:
#43-45取消注释并修改配置#
db.url.0=jdbc:mysql://192.168.8.88:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123.com
### Connection pool configuration: hikariCP
#48-51#
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2
3.7 启动Nacos
代码语言:javascript复制[root@localhost bin]# pwd
/root/packages/nacos/bin
[root@localhost bin]# ls
shutdown.cmd shutdown.sh startup.cmd startup.sh
[root@localhost bin]# ./startup.sh -m standalone #单机启动
3.8 登录Nacos验证
访问http://192.168.8.88:8848/nacos
用户名:nacos 密码:nacos