当前位置:网站首页>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注册中心服务部署多个节点,形成集群,提高可用性,防止单机节点宕机时服务不可用。
边栏推荐
- 自控原理学习笔记-系统稳定性分析(1)-BIBO稳定及Routh判据
- Electric heating neck pillow chip-dltap703sc
- Hash、Set、List、Zset、BitMap、Scan
- NPM basic use
- 「测试新手百科」5 分钟快速上手Pytest 自动化测试框架
- SSM integration
- Code interview of Amazon
- Led with fan eye protection learning table lamp touch chip-dlt8s12a
- log4j. Properties log details
- Multifunctional wireless remote control moxibustion instrument chip dltap703sd
猜你喜欢

Examples of map search

Order submission

自控原理学习笔记-系统稳定性分析(2)-环路分析及Nyquist-Bode判据

Order timeout cancellation and commodity query by category

Jmeter接口自动化-如何解决请求头Content-Type冲突问题

express

自控原理学习笔记-系统稳定性分析(1)-BIBO稳定及Routh判据

v-if,v-else,v-for

连续时间系统的性能分析(2)-二阶系统性能改善方式PID,PR

I'm afraid I won't use the JMeter interface testing tool if I accept this practical case
随机推荐
Some advice for NS2 beginner.
Typescript installation
How to break the team with automated testing
The understanding of string in C.
Order timeout cancellation and commodity query by category
Netred RGB mirror light touch chip-dlt8s15b-jericho
Electric heating neck pillow chip-dltap703sc
MySQL 01 relational database design
Matplotlib (basic usage)
WPS turns off annoying advertisements
WinForm remove the close button in the upper right corner
Redis注解
Selenium automated test interview questions family bucket
Product recommendation and classified product recommendation
Docker - docker installation, MySQL installation on docker, and project deployment on docker
Nodejs template engine EJS
Low noise anion fan touch IC
IDEA连接数据库时区问题,报红Server returns invalid timezone. Need to set ‘serverTimezone‘ property.
Sentinel1.8.4 persistent Nacos configuration
Ridis command notes
