当前位置:网站首页>Nacos基本概念和单机部署
Nacos基本概念和单机部署
2022-07-27 16:24:00 【华为云】
基本概念
在 Spring Cloud Alibaba 生态中,由 Nacos 中间件同时承担注册中心和配置中心职责,需要独立部署。官方地址为:https://nacos.io/zh-cn/index.html 是阿里开源项目,官方定义为:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
功能
动态配置服务
动态配置服务让您能够以中心化、外部化和动态化的方式管理所有环境的配置。动态配置消除了配置变更时重新部署应用和服务的需要。配置中心化管理让实现无状态服务更简单,也让按需弹性扩展服务更容易。
服务发现及管理
动态服务发现对以服务为中心的(例如微服务和云原生)应用架构方式非常关键。Nacos支持DNS-Based和RPC-Based(Dubbo、gRPC)模式的服务发现。Nacos也提供实时健康检查,以防止将请求发往不健康的主机或服务实例。借助Nacos,您可以更容易地为您的服务实现断路器。
动态DNS服务
通过支持权重路由,动态DNS服务能让您轻松实现中间层负载均衡、更灵活的路由策略、流量控制以及简单数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以DNS协议为基础的服务发现,以消除耦合到厂商私有服务发现API上的风险。
更多特性和功能说明查看官方文档。
单机部署
nacos依赖java环境,首先需要安装jdk和配置环境变量
- 安装jdk
yum -y install java-1.8.0-openjdk-devel.x86_64 #安装成功后验证Java版本 java -version - 配置环境变量
OpenJDK 默认安装在 /usr/lib/jvm/ 路径下,之后通过编辑 profile 设置 JAVA_HOME 环境变量。
[[email protected] ~]# vim /etc/profile export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el7_9.x86_64 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH [[email protected] ~]# source /etc/profile 确认 JAVA_HOME 环境变量是否配置正确。
[[email protected] ~]# echo $JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el7_9.x86_64 JDK安装后,正式进入 Nacos 的安装过程。
window安装
- 下载对应版本的nacos,并初始化数据库:https://github.com/alibaba/nacos/releases


- 修改application.properties配置文件
### Default web context path:server.servlet.contextPath=/nacos### Default web server port:server.port=8848### If use MySQL as datasource:spring.datasource.platform=mysql### Count of DB:db.num=1### Connect URL of DB:db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTCdb.user=rootdb.password=root- 进入bin目录启动nacos
#单节点启动startup.cmd -m standalone访问:http://localhost:8848/nacos/#/login 账号密码:nacos/nacos
linux安装
- 下载对应版本的压缩包文件并上传到对应服务器:https://github.com/alibaba/nacos/releases
- 解压对应的压缩包文件
tar -zxvf nacos-server-2.0.2.tar.gz解压后nacos目录结构说明:
- bin:保存启用/关闭 Nacos Server 脚本;
- conf:Nacos Server 配置目录;
- data:Nacos 数据目录;
- logs:存放日志目录;
- target:Nacos Jar 包存放目录;
- 进入bin目录,以单节点模式启动Nacos
sh startup.sh -m standalone启动日志如下:
nacos is starting with standalone nacos is starting, you can check the /data/software/nacos/logs/start.out 查看nacos启动日志
可以看出来nacos默认端口号为8848
tail -300f /data/software/nacos/logs/start.out2021-11-06 21:03:18,759 INFO Tomcat started on port(s): 8848 (http) with context path '/nacos' 2021-11-06 21:03:18,766 INFO Nacos Log files: /data/software/nacos/logs 2021-11-06 21:03:18,766 INFO Nacos Log files: /data/software/nacos/conf 2021-11-06 21:03:18,766 INFO Nacos Log files: /data/software/nacos/data 2021-11-06 21:03:18,767 INFO Nacos started successfully in stand alone mode. use embedded storage如果centos系统防火墙(firewall-cmd --state 查看防火墙状态)是开启的,需要开放8848和7848端口(8848 端口是 Nacos 对客户端提供服务的端口,7848 是 Nacos 集群通信端口,用于Nacos 集群间进行选举,检测等。)
#开放端口8848[[email protected] bin]# firewall-cmd --zone=public --add-port=8848/tcp --permanent #开放端口7848[[email protected] bin]# firewall-cmd --zone=public --add-port=7848/tcp --permanent #刷新防火墙[[email protected] bin]# firewall-cmd --reload - 进入 Nacos 管理界面,打开浏览器,地址栏输入:
http://ip:8848/nacos
输入账号密码:nacos/nacos进入管理页面
docker安装
- 拉取镜像:docker pull nacos/nacos-server:2.0.2
- 下载对应版本的SQL文件并初始化:https://github.com/alibaba/nacos/releases
- 构建容器并启动服务
docker run -d --privileged=true \-e TZ="Asia/Shanghai" \-e MODE=standalone \-p 8848:8848 \--name nacos-zjq-mysql \--restart=always \nacos/nacos-server:2.0.2- 查看日志
docker logs -f -t --tail 300 nacos-zjq-mysql- 进入容器
docker exec -it nacos-zjq-mysql bash- 修改配置文件设置数据源为MySQL
cd /home/nacos/confvim application.properties# springserver.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}server.contextPath=/nacosserver.port=${NACOS_APPLICATION_PORT:8848}spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:mysql}nacos.cmdb.dumpTaskInterval=3600nacos.cmdb.eventTaskInterval=10nacos.cmdb.labelTaskInterval=300nacos.cmdb.loadDataAtStart=falsedb.num=${MYSQL_DATABASE_NUM:1}db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST:127.0.0.1}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME:nacos_config}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true}db.url.1=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true}db.user=${MYSQL_SERVICE_USER:root}db.password=${MYSQL_SERVICE_PASSWORD:root}### The auth system to use, currently only 'nacos' is supported:nacos.core.auth.system.type=${NACOS_AUTH_SYSTEM_TYPE:nacos}- 复制容器内的配置文件到宿主机,避免容器重新构建时候还要修改配置文件
docker cp 容器名称:容器文件(绝对路径) 宿主机目录
docker cp nacos-sa-mysql:/home/nacos/conf/application.properties /data/docker/nacos/nacos-soms/conf- 重新启动容器并挂载目录
#停止容器docker stop nacos-zjq-mysql#删除容器docker rm nacos-zjq-mysql#启动容器docker run -d --privileged=true \-e TZ="Asia/Shanghai" \-e MODE=standalone \-v /data/docker/nacos/nacos-zjq/conf/application.properties:/home/nacos/conf/application.properties \-p 8848:8848 \--name nacos-zjq-mysql \--restart=always \nacos/nacos-server:2.0.2- nacos镜像启动的时候直接指定数据库配置
docker run -d \-v /data/nacos/logs:/home/nacos/logs \-e TZ="Asia/Shanghai" \-e PREFER_HOST_MODE=ip \-e MODE=standalone \-e SPRING_DATASOURCE_PLATFORM=mysql \-e MYSQL_SERVICE_HOST=数据库IP地址 \-e MYSQL_SERVICE_PORT=数据库端口 \-e MYSQL_SERVICE_USER=数据库账户 \-e MYSQL_SERVICE_PASSWORD=数据库密码 \-e MYSQL_SERVICE_DB_NAME=nacos_config \-e MYSQL_SERVICE_DB_PARAM= \-e NACOS_APPLICATION_PORT=8848 \-p 8848:8848 \--name nacos-zjq-mysql \--restart=always \nacos/nacos-server:2.0.2生产建议nacos注册中心服务部署多个节点,形成集群,提高可用性,防止单机节点宕机时服务不可用。
边栏推荐
- WORD 2007+使用技巧
- Typeerror: conv2d(): argument 'padding' (position 5) must be multiple of ints, not STR [error]
- Order submission
- Nodejs template engine EJS
- Selenium automated test interview questions family bucket
- Ruiji takeout notes
- v-if,v-else,v-for
- Led with fan eye protection learning table lamp touch chip-dlt8s12a
- Valueerror: found input variables with inconsistent numbers of samples: [80019456, 26673152] [error reporting]
- NPM basic use
猜你喜欢

IDEA连接数据库时区问题,报红Server returns invalid timezone. Need to set ‘serverTimezone‘ property.

Product name fuzzy search:

Low noise anion fan touch IC

Nodejs template engine EJS

Kinect for Unity3D——BackgroundRemovalDemo学习

Kinect for Unity3d----KinectManager

express get/post/delete...请求

npm 基本使用

汇编语言入门基础(1)

Unity学习笔记(刚体-物理-碰撞器-触发器)
随机推荐
模仿线程扣除
C # interaction with MySQL database - MySQL configuration and addition, deletion, query and modification operations
I'm stupid. When completable future is used with openfegin, it even reports an error
`this.$ Emit ` the child component passes multiple parameters to the parent component
MySQL 05 存储过程
Kinect for Unity3d----KinectManager
LeetCode 刷题 第二天
JDBC MySQL 02 data access and Dao mode
Imitation thread deduction
Kinect for Unity3d----KinectManager
Resource for NS2 beginner
SSM项目使用过滤器实现登录监听
How to break the team with automated testing
大冤种们,新进测试行业,如何正确选择意向企业?
收下这份实操案例,还怕不会用Jmeter接口测试工具
Unity learning notes (realize the conveyor belt)
Latex使用-控制表格或者图形的显示位置
Extension of ES6 value
连续时间系统的性能分析(2)-二阶系统性能改善方式PID,PR
怎样产生标准分布或高斯分布的随机数
