Nacos的安装方法
本篇文章给大家分享的是有关Nacos的安装方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
Nacos
一、Spring Cloud 、Spring Cloud Alibaba 、Nacos版本对应关系
官方版本说明
版本说明
format edited this page 2019/7/1 · 13 revisions
版本依赖关系
Spring Cloud Version | Spring Cloud Alibaba Version | Spring Boot Version |
---|---|---|
Spring Cloud Greenwich | 0.9.0.RELEASE | 2.1.X.RELEASE |
Spring Cloud Finchley | 0.2.X.RELEASE | 2.0.X.RELEASE |
Spring Cloud Edgware | 0.1.X.RELEASE | 1.5.X.RELEASE |
Note | 请注意, Spring Cloud Edgware 最低支持 Edgware.SR5 版本 |
---|---|
组件版本关系
Spring Cloud Alibaba Version | Sentinel Version | Nacos Version | RocketMQ Version | Dubbo Version | Seata Version |
---|---|---|---|---|---|
0.9.0.RELEASE or 0.2.2.RELEASE or 0.1.2.RELEASE | 1.5.2 | 1.0.0 | 4.4.0 | 2.7.1 | 0.4.2 |
0.2.1.RELEASE or 0.1.1.RELEASE | 1.4.0 | 0.6.2 | 4.3.1 | ❌ | ❌ |
0.2.0.RELEASE or 0.1.0.RELEASE | 1.3.0-GA | 0.3.0 | ❌ | ❌ | ❌ |
依赖管理
Spring Cloud Alibaba BOM 包含了它所使用的所有依赖的版本。
RELEASE 版本
Spring Cloud Greenwich
如果需要使用 Spring Cloud Greenwich 版本,请在 dependencyManagement 中添加如下内容
org.springframework.cloud spring-cloud-alibaba-dependencies 0.9.0.RELEASE pom import
Spring Cloud Finchley
如果需要使用 Spring Cloud Finchley 版本,请在 dependencyManagement 中添加如下内容
org.springframework.cloud spring-cloud-alibaba-dependencies 0.2.2.RELEASE pom import
Spring Cloud Edgware
如果需要使用 Spring Cloud Edgware 版本,请在 dependencyManagement 中添加如下内容
org.springframework.cloud spring-cloud-alibaba-dependencies 0.1.2.RELEASE pom import
BUILD-SNAPSHOT 版本
如果您想使用最近的 SNAPSHOT 版本,首先需要在你的 maven 配置中加入 Spring BUILDSNAPSHOT 仓库,可以在 Maven 配置文件中的 settings.xml 或者 Java 工程的 pom.xml 中配置,
spring-snapshot Spring Snapshot Repository https://repo.spring.io/snapshot true
Note | 请注意, BUILD-SNAPSHOT 版本随时可能更新 |
---|---|
Spring Cloud Greenwich
如果需要使用 Spring Cloud Greenwich 版本,请在 dependencyManagement 中添加如下内容
org.springframework.cloud spring-cloud-alibaba-dependencies 0.9.1.BUILD-SNAPSHOT pom import
Spring Cloud Finchley
如果需要使用 Spring Cloud Finchley 版本,请在 dependencyManagement 中添加如下内容
org.springframework.cloud spring-cloud-alibaba-dependencies 0.2.3.BUILD-SNAPSHOT pom import
Spring Cloud Edgware
如果需要使用 Spring Cloud Edgware 版本,请在 dependencyManagement 中添加如下内容
org.springframework.cloud spring-cloud-alibaba-dependencies 0.1.3.BUILD-SNAPSHOT pom import
二、 单机部署Nacos
1. 使用docker部署
1.1 下载镜像
github地址
dockerhub
注意:需要github中的分支版本号和docker镜像地址版本一致,如:nacos-server:0.6.0不支持prometheus和grafana,而最新版本支持
#如果使用最新版git clone --depth 1 https://github.com/nacos-group/nacos-docker.git
如果使用的不是最新版本的docker镜像
那么需要在github中查找相应的版本,然后下载zip文件,并使用ftp上传到centos服务器
1.2 部署镜像
Standalone Derby(单机部署,使用Derby)
Derby是Java编写的内嵌数据库,不要引入mysql
docker-compose -f example/standalone-derby.yaml up -d
配置文件
version: "3.7" services: nacos: image: nacos/nacos-server:1.1.0 #一般不要使用latest container_name: nacos-standalone #容器实例命名 environment: - PREFER_HOST_MODE=hostname - MODE=standalone #部署模式 volumes: - ./standalone-logs/:/home/nacos/logs - ./init.d/custom.properties:/home/nacos/init.d/custom.properties #配置使用prometheus、fluxdb、ES ports: - "8848:8848" prometheus: container_name: prometheus image: prom/prometheus:v2.11.1 volumes: - ./prometheus/prometheus-standalone.yaml:/etc/prometheus/prometheus.yml #配置监控点 ports: - "9090:9090" depends_on: - nacos #服务映射 restart: on-failure grafana: container_name: grafana image: grafana/grafana:6.2.5 ports: - 3000:3000 restart: on-failure
version是docker-compose文件格式与docker的版本对应关系
版本说明
Compose file format Docker Engine release 3.7 18.06.0+ 3.6 18.02.0+ 3.5 17.12.0+ 3.4 17.09.0+ 3.3 17.06.0+ 3.2 17.04.0+ 3.1 1.13.1+ 3.0 1.13.0+ 2.4 17.12.0+ 2.3 17.06.0+ 2.2 1.13.0+ 2.1 1.12.0+ 2.0 1.10.0+ 1.0 1.9.1.+ Standalone Mysql(单机部署,使用Mysql)
docker-compose -f example/standalone-mysql.yaml up -d
配置文件
version: "3.7"services: nacos: image: nacos/nacos-server:1.1.0 container_name: nacos-standalone-mysql environment: - PREFER_HOST_MODE=hostname - MODE=standalone - SPRING_DATASOURCE_PLATFORM=mysql - MYSQL_MASTER_SERVICE_HOST=mysql-master - MYSQL_MASTER_SERVICE_DB_NAME=nacos_devtest - MYSQL_MASTER_SERVICE_PORT=3306 - MYSQL_SLAVE_SERVICE_HOST=mysql-slave - MYSQL_SLAVE_SERVICE_PORT=3305 - MYSQL_MASTER_SERVICE_USER=nacos - MYSQL_MASTER_SERVICE_PASSWORD=nacos volumes: - ./standalone-logs/:/home/nacos/logs - ./init.d/custom.properties:/home/nacos/init.d/custom.properties ports: - "8848:8848" - "9555:9555" depends_on: - mysql-slave restart: on-failure mysql-master: container_name: mysql-master image: nacos/nacos-mysql-master:latest env_file: - ../env/mysql-common.env - ../env/mysql-master.env volumes: - ./mysql-master:/var/lib/mysql ports: - "3306:3306" mysql-slave: container_name: mysql-slave image: nacos/nacos-mysql-slave:latest env_file: - ../env/mysql-common.env - ../env/mysql-slave.env volumes: - ./mysql-slave:/var/lib/mysql ports: - "3305:3306" depends_on: - mysql-master prometheus: container_name: prometheus image: prom/prometheus:v2.11.1 volumes: - ./prometheus/prometheus-standalone.yaml:/etc/prometheus/prometheus.yml ports: - "9090:9090" depends_on: - nacos restart: on-failure grafana: container_name: grafana image: grafana/grafana:6.2.5 ports: - 3000:3000 restart: on-failure
三、 集群部署Nacos
Cluster(集群部署)
需要5G的内存预留
docker-compose -f example/cluster-hostname.yaml up -d
配置文件
version: "3.7"services: nacos1: hostname: nacos1 container_name: nacos1 image: nacos/nacos-server:1.1.0 volumes: - /usr/local/use_data/nacos/nacos-cluster/nacos-1/data/logs:/home/nacos/logs - ./init.d/custom.properties:/home/nacos/init.d/custom.properties ports: - "8849:8848" - "9555:9555" env_file: - ../env/nacos-hostname.env restart: on-failure depends_on: - mysql-master - mysql-slave nacos2: hostname: nacos2 image: nacos/nacos-server:latest container_name: nacos2 volumes: - /usr/local/use_data/nacos/nacos-cluster/nacos-2/data/logs:/home/nacos/logs - ./init.d/custom.properties:/home/nacos/init.d/custom.properties ports: - "8850:8848" env_file: - ../env/nacos-hostname.env restart: on-failure depends_on: - mysql-master - mysql-slave nacos3: hostname: nacos3 image: nacos/nacos-server:latest container_name: nacos3 volumes: - /usr/local/use_data/nacos/nacos-cluster/nacos-3/data/logs:/home/nacos/logs - ./init.d/custom.properties:/home/nacos/init.d/custom.properties ports: - "8851:8848" env_file: - ../env/nacos-hostname.env restart: on-failure depends_on: - mysql-master - mysql-slave mysql-master: container_name: mysql-master image: nacos/nacos-mysql-master:latest env_file: - ../env/mysql-common.env - ../env/mysql-master.env volumes: - /usr/local/use_data/nacos/nacos-cluster/mysql-master:/var/lib/mysql ports: - "3306:3306" mysql-slave: container_name: mysql-slave image: nacos/nacos-mysql-slave:latest env_file: - ../env/mysql-common.env - ../env/mysql-slave.env volumes: - /usr/local/use_data/nacos/nacos-cluster/mysql-slave:/var/lib/mysql ports: - "3305:3306" depends_on: - mysql-master prometheus: container_name: prometheus image: prom/prometheus:v2.11.1 volumes: - ./prometheus/prometheus-cluster.yaml:/etc/prometheus/prometheus.yml ports: - "9091:9090" depends_on: - nacos1 - nacos2 - nacos3 restart: on-failure grafana: container_name: grafana image: grafana/grafana:6.2.5 ports: - 3000:3000 restart: on-failure
四、 测试
服务注册
curl -X PUT 'http://{ip}:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
服务发现
curl -X GET 'http://{ip}:8848/nacos/v1/ns/instances?serviceName=nacos.naming.serviceName'
发布配置
curl -X POST "http://{ip}:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld"
获取配置
curl -X GET "http://{ip}:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"
使用浏览器打开
link:http://${ip}:8848/nacos/
账号:nacos/nacos
使用prometheus查看监控数据
link:http://${ip}:9090
使用grafana监控ui面板
link:http://${ip}:3000
五、 停止和启动nacos
因为使用的是docker-compose编排,故使用docker-compose命令
#查询运行的容器docker-compose -f example/cluster-hostname.yaml ps#停止运行的容器docker-compose -f example/cluster-hostname.yaml stop#启动容器docker-compose -f example/cluster-hostname.yaml start#重启容器docker-compose -f example/cluster-hostname.yaml restart#删除容器docker-compose -f example/cluster-hostname.yaml rm
以上就是Nacos的安装方法,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。