Nacos(三)Docker部署Nacos单机环境(兼容Nacos1.x与2.x),简单易懂、实用

导读:本篇文章讲解 Nacos(三)Docker部署Nacos单机环境(兼容Nacos1.x与2.x),简单易懂、实用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

《Docker部署Nacos-2.0.3集群环境》
《Linux部署Nacos-2.0.3单机环境》
《Linux部署Nacos-2.0.3集群环境》
《SpringCloud整合Nacos2.x使用》

前言

具体搭建那个版本的Nacos,最好根据需要整合的SpringCloud版本来决定。
版本对应参考:组件版本关系
在这里插入图片描述

对比1.x版本

Nacos1.x的搭建方式和2.x的方式,基本一致,相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成(分别偏移了1000和1001),nacos默认的端口为8848,偏移后的新增端口为9848与9849

端口 与主端口的偏移量 描述
9848 1000 客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求
9849 1001 服务端gRPC请求服务端端口,用于服务间同步等

1、拉取镜像

拉取时最好指定版本,在git查看相应版本: https://github.com/nacos-group/nacos-docker

注意:1.3.2以上版本,已支持mysql8

拉取镜像:

docker pull  nacos/nacos-server:2.0.3

2、配置mysql环境

3、方式一:启动容器(无需挂载配置)

该方式会导致容器运行后修改启动参数比较麻烦,并且还需要重启docker服务代价较高,需要修改config.v2.json文件,参考:《Docker修改启动参数》

如果服务器配置有可能发生改变,不推荐该方式
启动命令如下:

docker  run \
--name nacos-server -d \
--privileged=true \
--restart=always \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-e PREFER_HOST_MODE=hostname \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.1.100 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_USER=nacos \
-e MYSQL_SERVICE_PASSWORD=nacos \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
nacos/nacos-server:2.0.3

4、方式二:配置启动Nacos(推荐)

4.1 创建挂载目录

mkdir -p /root/docker/cloud/nacos

4.2 拷贝容器目录

先不进行任何配置直接启动一个nacos容器,然后将容器中的data、conf、log、bin拷贝到/root/docker/cloud/nacos目录下。
直接启动:

docker run --name nacos-server -d nacos/nacos-server:2.0.3

拷贝目录:

docker cp nacos-server:/home/nacos/conf /root/docker/cloud/nacos/
docker cp nacos-server:/home/nacos/logs /root/docker/cloud/nacos/
docker cp nacos-server:/home/nacos/bin /root/docker/cloud/nacos/
docker cp nacos-server:/home/nacos/data /root/docker/cloud/nacos/

删除容器:

docker stop nacos-server
docker rm nacos-server

目的是:为了进行挂载启动,以后修改配置文件、查看日志时更加方便。

4.3 配置application.properties

application.properties文件中,我们直接将原有采用环境变量方式的配置根据实际情况进行修改。

修改:

vim /root/docker/cloud/nacos/conf/application.properties

修改内容如下:

# 端口
server.port=8848
spring.datasource.platform=mysql
# 数据库数量,如果mysql配置了主从就设置为 2
db.num=1
# mysql连接
db.url.0=jdbc:mysql://192.168.0.111:3306/db-nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai
# 如果db.num=1,则将db.url.1屏蔽;反之则配置db.url.1
#db.url.1=
# mysql用户名
db.user=root
# mysql密码
db.password=123456

4.4 配置docker-startup.sh

startup.sh中主要根据当前服务器的配置修改JVM大小,比如:修改为1G或者更大或者更小。

修改:

vim /root/docker/cloud/nacos/bin/docker-startup.sh

内容如下:

JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn512m"

在这里插入图片描述

4.5 挂载启动容器

docker  run \
--name nacos-server -d \
--privileged=true \
--restart=always \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-v /root/docker/cloud/nacos/logs:/home/nacos/logs \
-v /root/docker/cloud/nacos/data:/home/nacos/data \
-v /root/docker/cloud/nacos/conf:/home/nacos/conf \
-v /root/docker/cloud/nacos/bin:/home/nacos/bin \
nacos/nacos-server:2.0.3

测试:

通过:http://192.168.0.111:8848/nacos,成功访问nacos则表示搭建成功。
默认账户:nacos
默认密码:nacos,为了安全在第一次进入到nacos以后最好修改一次密码。
在这里插入图片描述
在这里插入图片描述

4.6 容器参数介绍

参数说明:

参数名称 参数描述 参数值选择
MODE cluster模式/standalone模式 cluster/standalone default cluster
NACOS_SERVERS nacos cluster地址 eg. ip1,ip2,ip3
PREFER_HOST_MODE 是否支持hostname hostname/ip default ip
NACOS_SERVER_PORT nacos服务器端口 default 8848
NACOS_SERVER_IP 多网卡下的自定义nacos服务器IP
SPRING_DATASOURCE_PLATFORM standalone 支持 mysql mysql / empty default empty
MYSQL_MASTER_SERVICE_HOST mysql 主节点host
MYSQL_MASTER_SERVICE_PORT mysql 主节点端口 default : 3306
MYSQL_MASTER_SERVICE_DB_NAME mysql 主节点数据库
MYSQL_MASTER_SERVICE_USER 数据库用户名
MYSQL_MASTER_SERVICE_PASSWORD 数据库密码
MYSQL_SLAVE_SERVICE_HOST mysql从节点host
MYSQL_SLAVE_SERVICE_PORT mysql从节点端口 default :3306
MYSQL_DATABASE_NUM 数据库数量 default :2
JVM_XMS -Xms default :2g
JVM_XMX -Xmx default :2g
JVM_XMN -Xmn default :1g
JVM_MS -XX:MetaspaceSize default :128m
JVM_MMS -XX:MaxMetaspaceSize default :320m
NACOS_DEBUG 开启远程调试 y/n default :n
TOMCAT_ACCESSLOG_ENABLED server.tomcat.accesslog.enabled default :false

4、控制台介绍

Nacos 控制台主要旨在于增强对于服务列表,健康状态管理,服务治理,分布式配置管理等方面的管控能力,包括下列常用操作:

  • 服务管理

    • 服务列表及服务健康状态展示
    • 服务元数据存储及编辑
    • 服务流量权重的调整
    • 服务优雅上下线
  • 配置管理

  • 命名空间

  • 登录管理

服务管理
开发者或者运维人员往往需要在服务注册后,通过友好的界面来查看服务的注册情况,包括当前系统注册的所有服务和每个服务的详情。并在有权限控制的情况下,进行服务的一些配置的编辑操作。Nacos在这个版本开放的控制台的服务发现部分,主要就是提供用户一个基本的运维页面,能够查看、编辑当前注册的服务。

服务列表管理
服务列表帮助用户以统一的视图管理其所有的微服务以及服务健康状态。整体界面布局是左上角有服务的搜索框和搜索按钮,页面中央是服务列表的展示。服务列表主要展示服务名、集群数目、实例数目、健康实例数目和详情按钮五个栏目。
在这里插入图片描述
在服务列表页面点击详情,可以看到服务的详情。可以查看服务、集群和实例的基本信息。

服务流量权重支持及流量保护
Nacos 为用户提供了流量权重控制的能力,同时开放了服务流量的阈值保护,以帮助用户更好的保护服务服务提供者集群不被意外打垮。如下图所以,可以点击实例的编辑按钮,修改实例的权重。如果想增加实 例的流量,可以将权重调大,如果不想实例接收流量,则可以将权重设为0。
在这里插入图片描述

服务元数据管理
Nacos提供多个维度的服务元数据的暴露,帮助用户存储自定义的信息。这些信息都是以K-V的数据结构存储,在控制台上,会以k1=v1,k2=v2这样的格式展示。类似的,编辑元数据可以通过相同的格式进行。例如服务的元数据编辑,首先点击服务详情页右上角的“编辑服务”按钮,然后在元数据输入框输入:version=1.0,env=prod。
在这里插入图片描述
点击确认,就可以在服务详情页面,看到服务的元数据已经更新了。
在这里插入图片描述

服务优雅上下线
Nacos还提供服务实例的上下线操作,在服务详情页面,可以点击实例的“上线”或者“下线”按钮,被下线的实例,将不会包含在健康的实例列表里。
在这里插入图片描述

配置管理
Nacos支持基于Namespace和Group的配置分组管理,以便用户更灵活的根据自己的需要按照环境或者应用、模块等分组管理微服务以及Spring的大量配置,在配置管理中主要提供了配置历史版本、回滚、订阅者查询等核心管理能力。在这里插入图片描述
多配置格式编辑器
Nacos支持 YAML、Properties、TEXT、JSON、XML、HTML 等常见配置格式在线编辑、语法高亮、格式校验,帮助用户高效编辑的同时大幅降低格式错误带来的风险。

Nacos支持配置标签的能力,帮助用户更好、更灵活的做到基于标签的配置分类及管理。同时支持用户对配置及其变更进行描述,方面多人或者跨团队协作管理配置。
在这里插入图片描述
监听者查询
Nacos提供配置订阅者即监听者查询能力,同时提供客户端当前配置的MD5校验值,以便帮助用户更好的检查配置变更是否推送到 Client 端。
在这里插入图片描述
命名空间管理
在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/18056.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!