作者:互联网-小啊宇
简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护等领域。
博客首页:CSDN【互联网-小阿宇】 、阿里云【互联网-小阿宇】
欢迎小伙伴们点赞、收藏⭐、留言
Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
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 无缝支持一些主流的开源生态,例如
Spring Cloud
Apache Dubbo and Dubbo Mesh
Kubernetes and CNCF
使用 Nacos 简化服务发现、配置管理、服务治理及管理的解决方案,让微服务的发现、管理、共享、组合更加容易。
IP地址 | 操作环境 | 运行资源 | 备注 |
---|---|---|---|
192.168.8.88 | Centos7.5 | 2C8G | JDK、MySQL、Nacos |
[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
[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
[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)
[root@localhost mysql]# mkdir /data
vim /etc/selinux/config
#修改
SELINUX=disabled
systemctl stop firewalld && systemctl disable firewalld
reboot
[root@localhost mysql]# rpm -Uvh /root/packages/mysql/*.rpm --nodeps --force
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
systemctl start mysqld.service
systemctl status mysqld.service
grep "password" /var/log/mysqld.log
[root@localhost mysql]# mysql -uroot -p
Enter password: 输入从日志获取的密码
set global validate_password_policy=0;
set global validate_password_length=1;
ALTER USER 'root'@'localhost' IDENTIFIED BY '数据库密码';
grant all on *.* to root@'%' identified by '数据库密码';
#设置开机自启动
systemctl enable mysqld
#重启数据库
systemctl restart mysqld
#开启数据库
systemctl start mysqld
#停止数据库
systemctl stop mysqld
[root@localhost packages]# tar -zxf nacos-server-2.2.3.tar.gz
从服务器中将mysql-schema.sql文件导出到电脑
或者
在主机将nacos的安装包解压同样可以获取到sql文件
使用navicat导入sql文件
或者
可以通过终端进入MySQL数据库进行导入
[root@localhost ~]# mysql -uroot -p
Enter password:#输入密码
mysql> use nacos;
Database changed
mysql> source /root/packages/nacos/conf/mysql-schema.sql;
进入conf目录,复制一份cluster.conf.example,修改名称为cluster.conf
[root@localhost conf]# pwd
/root/packages/nacos/conf
[root@localhost conf]# cp cluster.conf.example cluster.conf
修改cluster.conf内容
[root@localhost conf]# vi cluster.conf
[root@localhost conf]# vi application.properties
前面的数字为行号,可能有所不同,以实际为准
#修改端口号
#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
[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
/usr/local/java/bin/java -Djava.ext.dirs=/usr/local/java/jre/lib/ext:/usr/local/java/lib/ext -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/root/packages/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Dnacos.member.list= -Xloggc:/root/packages/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/root/packages/nacos/plugins,/root/packages/nacos/plugins/health,/root/packages/nacos/plugins/cmdb,/root/packages/nacos/plugins/selector -Dnacos.home=/root/packages/nacos -jar /root/packages/nacos/target/nacos-server.jar --spring.config.additional-location=file:/root/packages/nacos/conf/ --logging.config=/root/packages/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with cluster
nacos is starting,you can check the /root/packages/nacos/logs/start.out
访问http://192.168.8.88:8848/nacos
用户名:nacos
密码:nacos