Nacos docker实现nacos高可用集群项目

这篇具有很好参考价值的文章主要介绍了Nacos docker实现nacos高可用集群项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

Nacos是什么?

Nacos在公司里的运用是什么?

使用docker构建nacos容器高可用集群

实验规划图:​编辑

1、拉取nacos镜像

2、创建docker网桥(实现集群内的机器的互联互通(所有的nacos和mysql))

3、创建Mysql容器,并初始化数据库nacos_config数据库(不用添加注释,我是为了方便解释)

​编辑​编辑4、创建三个Nacos节点

5、测试访问

Nacos是什么?

Nacos(中文名:阿里巴巴注册中心和配置中心)是一个开源的动态服务发现、配置管理和服务管理平台,最初由阿里巴巴开发并开源。

Nacos 提供了以下核心功能:

  1. 服务发现和注册: Nacos 允许应用程序在微服务架构中注册自己的服务实例,并发现其他服务的实例。这有助于构建弹性、可扩展的微服务应用,使服务能够自动注册和发现。

  2. 动态配置管理: Nacos 提供了一个配置中心,允许将配置信息集中存储和管理。应用程序可以动态获取配置,而不需要重新启动,从而支持配置的动态更新。

  3. 服务健康检查: Nacos 可以定期检查注册的服务实例的健康状态,以确保它们正常运行。这对于自动发现和剔除不健康的实例非常重要。

  4. 动态 DNS 服务: Nacos 提供了一个 DNS 服务,可以通过服务名称动态解析到相应的服务实例的 IP 地址。这简化了微服务之间的通信,不需要硬编码 IP 地址。

  5. 灰度发布: Nacos 支持灰度发布(部分流量切换到新版本),以及基于权重的负载均衡,有助于实现无缝升级和降级。

  6. 多数据中心和跨区域复制: Nacos 具有多数据中心和跨区域复制的能力,支持全球分布式部署。

  7. 支持多种语言和开放API: Nacos 提供了多种编程语言的客户端库,同时也支持开放的 REST 和 gRPC API,使其易于集成到各种应用程序中。

Nacos 可以作为微服务架构中的关键基础设施组件,用于管理和协调微服务的注册、发现、配置和健康检查等方面。它有助于构建可扩展、高可用的微服务架构,并提供了许多功能,使微服务应用程序更易于开发、部署和管理。因此,Nacos 在现代应用程序和微服务生态系统中广泛应用。

Nacos在公司里的运用是什么?

Nacos在公司内的运用通常包括以下几个方面:

  1. 微服务架构支持:Nacos是一个用于服务注册与发现、配置管理和服务健康监测的平台,因此在微服务架构中广泛应用。公司可以使用Nacos来管理大规模微服务应用程序的服务发现、负载均衡、配置分发等方面的需求。

  2. 服务注册和发现:公司可以使用Nacos来注册和发现各种微服务实例。当新的微服务实例启动时,它们会向Nacos注册,这样其他微服务就可以动态地发现并与它们通信。这有助于简化微服务之间的通信和协调。

  3. 配置中心:Nacos提供了一个集中的配置管理系统,公司可以将应用程序的配置信息存储在Nacos中,并让应用程序动态地获取配置。这使得配置更加灵活,可以在运行时进行修改,而无需重新部署应用程序。

  4. 动态路由和负载均衡:Nacos支持动态路由,公司可以根据不同的条件将请求路由到不同的服务实例上。此外,Nacos也可以与负载均衡器集成,确保流量被均匀分布到不同的服务实例上,提高了系统的性能和可扩展性。

  5. 灰度发布和滚动升级:Nacos支持灰度发布策略,允许公司逐渐将新版本的服务引入生产环境,同时维护旧版本。这有助于降低风险,并在升级过程中实现零宕机。

  6. 健康检查和自动故障恢复:Nacos可以定期检查注册的服务实例的健康状态,如果某个实例出现故障,Nacos会自动将其从注册表中注销,并自动进行故障恢复。这有助于提高系统的可用性和稳定性。

  7. 事件监听和报警:Nacos支持事件监听机制,公司可以根据配置或服务状态的变化触发自定义操作,如通知、报警等。这有助于及时发现和应对问题。

  8. 多数据中心支持:对于跨多个数据中心的大型组织,Nacos支持多数据中心配置和服务注册,使得管理跨地理位置的服务部署变得更加容易。

总之,Nacos在公司内的应用主要是为了支持微服务架构和提供服务治理的各个方面,从而帮助公司更好地构建、管理和维护分布式应用程序,提高系统的可用性、可维护性和可扩展性。

使用docker构建nacos容器高可用集群

参考视频:【IT老齐315】3分钟Docker构建并接入Nacos 2.x高可用集群

实验规划图:

1、拉取nacos镜像

[root@localhost ~]# docker pull nacos/nacos-server:v2.2.2

2、创建docker网桥(实现集群内的机器的互联互通(所有的nacos和mysql))

[root@localhost conf]# docker network create -d bridge bdg-nacos-cluster
f935dccd695c530d961f540c7878ac8531285031b0b2da8bc15e30c7ebfc964d

3、创建Mysql容器,并初始化数据库nacos_config数据库(不用添加注释,我是为了方便解释)

[root@localhost ~]# cat creat_mysql_nacos.sh 
mkdir /etc/nacos-mysql/initdb
cd /etc/nacos-mysql/initdb

rm -f mysql-schema.sql
# 前提是你下载了wget,下面的网址是国内的mysql-schema.sql下载网址,并且nacos官方也会给我们提供mysql-schema.sql数据库
wget http://manongbiji.oss-cn-beijing.aliyuncs.com/ittailkshow/sca2023/download/mysql-schema.sql

docker rm -f mysql-5.7.4
docker volume rm -f nacos-mysql-data
# 创建卷,用于保存nacos运行的数据文件
docker volume create nacos-mysql-data

# 构建的mysql5.7.4的容器
docker run --name mysql-5.7.4 --hostname=mysql-5.7.4 -d \
-p=8306:3306 --network=bdg-nacos-cluster --restart=always \
-e MYSQL_ROOT_PASSWORD=123456 \
-v nacos-mysql-data:/var/lib/mysql \               #用于保存mysql内的数据
-v /etc/nacos-mysql/initdb:/docker-entrypoint-initdb.d \  #保存的我们下载的mysql-schema.sql
mysql:5.7.4           #镜像版本
[root@localhost ~]# 

Nacos docker实现nacos高可用集群项目,运维

mysql-schema.sql数据库内表的作用如下:

4、创建三个Nacos节点

Nacos docker实现nacos高可用集群项目,运维

创建nacos1节点

export CNAME=nacos1
docker rm -f ${CNAME}
docker volume rm -f ${CNAME}-logs
docker volume create ${CNAME}-logs

docker run -d --name ${CNAME} \
--network=bdg-nacos-cluster --restart=always \
--hostname=${CNAME} \
-e PREFER_HOST_MODE=hostname \
-e NACOS_SERVERS="nacos1:8848 nacos2:8848 nacos3:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=mysql-5.7.4 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root \
-e MYSQL_SERVICE_DB_PARAM="characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true" \
-e NACOS_AUTH_IDENTITY_KEY=2222 \
-e NACOS_AUTH_IDENTITY_VALUE=2xxx \
-e NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789 \
-v ${CNAME}-logs:/home/nacos/logs \
-p 8848:8848 -p 9848:9848 -d \
nacos/nacos-server:v2.2.2

代码解释: 

Nacos docker实现nacos高可用集群项目,运维

Nacos docker实现nacos高可用集群项目,运维

实现效果:

[root@localhost initdb]# export CNAME=nacos1
[root@localhost initdb]# docker rm -f ${CNAME}
Error response from daemon: No such container: nacos1
[root@localhost initdb]# docker volume rm -f ${CNAME}-logs
nacos1-logs
[root@localhost initdb]# docker volume create ${CNAME}-logs
nacos1-logs
[root@localhost initdb]# docker run -d --name ${CNAME} \
> --network=bdg-nacos-cluster --restart=always \
> --hostname=${CNAME} \
> -e PREFER_HOST_MODE=hostname \
> -e NACOS_SERVERS="nacos1:8848 nacos2:8848 nacos3:8848" \
> -e SPRING_DATASOURCE_PLATFORM=mysql \
> -e MYSQL_SERVICE_HOST=mysql-5.7.4 \         #mysql容器名称
> -e MYSQL_SERVICE_DB_NAME=nacos_config \
> -e MYSQL_SERVICE_PORT=3306 \
> -e MYSQL_SERVICE_USER=root \
> -e MYSQL_SERVICE_PASSWORD=123456 \
> -e MYSQL_SERVICE_DB_PARAM="characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true" \
> -e NACOS_AUTH_IDENTITY_KEY=2222 \           #标准的身份认证信息,三台nacos都必须保持一致
> -e NACOS_AUTH_IDENTITY_VALUE=2xxx \
> -e NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789 \
> -v ${CNAME}-logs:/home/nacos/logs \
> -p 8848:8848 -p 9848:9848 -d \
> nacos/nacos-server:v2.2.2
2735cb302399c46c64342d1feda2aaf44bee4441cb8469dacc3cc166e6e649c4
[root@localhost initdb]# 

创建nacos2节点

export CNAME=nacos2                                      # 修改部分
docker rm -f ${CNAME}
docker volume rm -f ${CNAME}-logs
docker volume create ${CNAME}-logs

docker run -d --name ${CNAME} \
--network=bdg-nacos-cluster --restart=always \
--hostname=${CNAME} \
-e PREFER_HOST_MODE=hostname \
-e NACOS_SERVERS="nacos1:8848 nacos2:8848 nacos3:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=mysql-5.7.4 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-e MYSQL_SERVICE_DB_PARAM="characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true" \
-e NACOS_AUTH_IDENTITY_KEY=2222 \
-e NACOS_AUTH_IDENTITY_VALUE=2xxx \
-e NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789 \
-v ${CNAME}-logs:/home/nacos/logs \
-p 8849:8848 -p 9849:9848 -d \                       # 修改部分
nacos/nacos-server:v2.2.2

创建nacos3节点

export CNAME=nacos3                                      # 修改部分
docker rm -f ${CNAME}
docker volume rm -f ${CNAME}-logs
docker volume create ${CNAME}-logs

docker run -d --name ${CNAME} \
--network=bdg-nacos-cluster --restart=always \
--hostname=${CNAME} \
-e PREFER_HOST_MODE=hostname \
-e NACOS_SERVERS="nacos1:8848 nacos2:8848 nacos3:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=mysql-5.7.4 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-e MYSQL_SERVICE_DB_PARAM="characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true" \
-e NACOS_AUTH_IDENTITY_KEY=2222 \              
-e NACOS_AUTH_IDENTITY_VALUE=2xxx \
-e NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789 \
-v ${CNAME}-logs:/home/nacos/logs \
-p 8850:8848 -p 9850:9848 -d \                       # 修改部分
nacos/nacos-server:v2.2.2

5、测试访问

Nacos docker实现nacos高可用集群项目,运维

访问网址http://192.168.1.209:8848/nacos/

Nacos docker实现nacos高可用集群项目,运维

初始账号密码默认为nacos。

Nacos docker实现nacos高可用集群项目,运维文章来源地址https://www.toymoban.com/news/detail-696194.html

到了这里,关于Nacos docker实现nacos高可用集群项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker 从0安装 nacos集群

    Docker支持一下的CentOs版本 Centos7(64-bit),系统内核版本为 3.10 以上 Centos6.5(64-bit) 或者更高版本,系统内核版本为 2.6.32-431 或者更高版本 使用 yum 安装(CentOS 7下) 通过 uname -r 命令查看你当前的内核版本 安装命令 启动 Docker 后台服务 安装MySQL 查看docker中已有mysql的镜像 查看d

    2024年04月11日
    浏览(30)
  • Docker-nacos集群部署

    先拉取一个mysql 定义一个挂载目录 配置一个my.cnf放到conf目录下 开启mysql容器    privileged=true:使用该参数,container内的root拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限 restart=always:容器自动启动参数,其值可以为[no,no-failure,always] no为默认值,表示容

    2024年01月20日
    浏览(51)
  • 最终Docker6:nacos集群部署

    目录  mysql容器构建 1.进入soft 文件夹,创建mysql文件夹 2.进入conf文件夹 放入my.conf 配置文件 3.运行mysql容器 4.进入script文件夹 导入 sql文件 5.进入mysql 容器 并登录 6.创建nacos 数据库并使用,运行nacos.sql文件 7.授予用户所有权限 部署单个nacos,连接mysql 1.下载nacos镜像 2.部署单个

    2024年01月21日
    浏览(78)
  • docker启动nacos(单机模式、集群模式)

    docker pull nacos/nacos-server:v2.1.2 2.1.先以单机模式运行nacos docker run -d --name nacos -p 8848:8848 -e MODE=standalone nacos/nacos-server:v2.1.2 查看运行过程:docker logs -f nacos ps:如果启动失败可能是服务器内存过小,如果要限制nacos 占用的内存大小,使用以下语句 docker run --name nacos -e JVM_XMS=256m -

    2023年04月17日
    浏览(41)
  • 【Docker】在Linux使用Docker进行nacos集群部署

    目录 一、介绍 二、单个部署 三、多个部署  每篇一获 Nacos  是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos的主要功能包括: 服务发现和服务健康检查 :Nacos能够帮助您实现自动服务注册、发现和健康检查。 动态配置服务 :

    2024年01月19日
    浏览(45)
  • 使用Docker Compose快速部署整套Nacos集群

    使用Docker Compose快速部署整套Nacos集群 Nacos是一款开源的服务发现、配置管理和动态 DNS 服务的平台。它具有高可用、可扩展、易于使用的特点,因此受到了很多开发者的欢迎。但是,对于初学者来说,Nacos的安装和配置可能会有些困难。本文将介绍如何使用Docker Compose快速部署

    2024年02月12日
    浏览(51)
  • Docker 单机/集群 部署 Nacos2.2.0

    1- 拉取镜像 2- 创建数据库 数据库初始化脚本:https://github.com/alibaba/nacos/blob/2.2.0/config/src/main/resources/META-INF/nacos-db.sql 3- 准备挂载的配置文件目录和日志目录 日志目录(空目录):./nacos/logs 配置文件:./nacos/conf/application.properties 拷贝:https://github.com/nacos-group/nacos-docker/blob/v2.2.0

    2024年02月15日
    浏览(38)
  • 【Docker】contos7安装 Nacos容器部署单个&&部署集群

                                      🎉🎉欢迎来到我的CSDN主页!🎉🎉                     🏅我是平顶山大师,一个在CSDN分享笔记的博主。📚📚     🌟推荐给大家我的博客专栏《Docker】contos7安装 Nacos容器部署单个部署集群》。🎯🎯                  

    2024年01月23日
    浏览(49)
  • 解决docker项目部署之Nacos服务注册IP选择

    前段时间为了方便项目的快速部署,我便将其项目部署到了docker中,后来有一次项目调试的时候我发现我在本地启动的项目,无法通过fegin调用我部署在docker里面的服务 我就立刻去nacos里查看项目的启动情况,突然发现其注册的地址是docker内部的物理机地址 然后我就去查了一

    2023年04月08日
    浏览(50)
  • 基于netty+springCloudGateWay+nacos 实现的聊天室(可支持集群)

    1.基于需要实现一个IM 就记录一下 。 1.将websocket 注册到 nacos 服务上 也是IM 注册到nacos 上  借助rabbitmq 实现集群以及redis 实现记录离线消息具体看代码文字懒得写(里面自己还尝试换了 zookeeper 作为注册中心 仅供学习)IM 和 网关的 目录: 整个逻辑是启动服务将websocket,网关

    2023年04月08日
    浏览(78)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包