Spring Cloud2024.x实战 | nacos系列 | 第1篇:centos7.x下docker安装nacos2.5.1集群(3台物理机真实集群)

centos7.x下docker安装nacos2.5.1集群(3台物理机真实集群)

1 引言

	Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。旨在帮助开发者更轻松地构建、部署和管理分布式系统,特别是在微服务架构中‌‌,Nacos的主要作用和意义包括以下几个方面:

1‌.服务注册与发现‌:微服务启动时会自动将自身信息(如IP、端口、健康状态)注册到Nacos。服务消费者可以通过Nacos动态发现其他服务的实例,实现服务间的通信。Nacos支持基于DNS和基于RPC的服务发现,并提供实时的健康检查,确保服务的可用性‌;
2.动态配置管理‌:Nacos允许以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。配置更新后,Nacos会实时推送到客户端,无需重启应用,大大提高了配置管理的效率和灵活性。Nacos还支持配置版本管理、灰度发布和一键回滚等功能‌;
3.健康检查‌:Nacos会定期检查服务实例的健康状态,自动剔除不健康的实例。它支持传输层和应用层的健康检查,适用于复杂的云环境和网络拓扑结构‌;
4‌.多环境支持‌:Nacos支持多环境(如开发、测试、生产)的配置隔离,方便在不同环境中使用不同的配置。这有助于在不同阶段快速切换和部署应用‌;
5.元数据管理和流量管理‌:Nacos支持为服务实例添加自定义元数据(如版本号、环境信息),并提供基于权重的流量分配和路由策略。这有助于实现精细化的流量管理和服务治理‌‌;
6.社区支持和持续迭代‌:Nacos由阿里巴巴内部项目发展而来,并于2018年首次开源。它经历了多个版本的迭代和优化,逐渐形成了成熟的产品形态,广泛应用于各种业务场景‌。
通过这些功能,Nacos极大地简化了微服务架构中的服务管理和配置工作,提高了系统的可靠性和可维护性,是现代分布式系统不可或缺的工具。

2 环境准备

准备5台服务器,2台安装nginx和mysql,另3台做集群使用。

IP 服务 操作系统
172.16.250.84 Mysql CentOS 7.4
172.16.250.92 Nginx CentOS 7.4
172.16.250.93 nacos-1 CentOS 7.4
172.16.250.95 nacos-2 CentOS 7.4
172.16.250.96 nacos-3 CentOS 7.4

另外centos7.4系统服务器上要求安装上docker(docker-compose可选安装)(可以参看我的博客《docker&docker-compose实战 | docker&docker-compose自身安装系列 | 第一篇:centos7.x下docker & docker-compose安装》)。mysql选用8.0.11 需要提前安装(可以参看我的博客《docker&docker-compose实战 | docker&docker-compose安装基础中间件系列 | 第一篇:centos7.x下docker安装mysql8.x》),并且部署nacos数据库脚本,nacos脚本可以看下面内容。
这几种方式都可以查看centos的版本
可以查看对应的docker版本
查看对应的docker-compose版本

3 部署nacos集群

3.1 拉取nacos镜像

三台服务器都需要执行

docker pull nacos/nacos-server:v2.5.1

3.2 创建宿主机nacos数据、配置和日志存储目录

三台服务器都需要执行

mkdir -p /data/soft/nacos/{
   conf,logs,data}

3.3 复制容器默认配置文件到宿主机

docker run -d --name nacos nacos/nacos-server:v2.5.1
docker cp nacos:/home/nacos/conf/. /data/soft/nacos/conf/
docker rm -f nacos

3.4 创建数据库并表初始化

在172.12.250.84机器的mysql数据库中创建

  • 创建nacos251数据库:

    可执行如下脚本:

    CREATE DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    
    示例:
    CREATE DATABASE `nacos251` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    
  • 导入/data/soft/nacos/conf/mysql-schema.sql文件
    下载地址:nacos2.5.1

/*
 * Copyright 1999-2018 Alibaba Group Holding Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/******************************************/
/*   表名称 = config_info                  */
/******************************************/
CREATE TABLE `config_info` (
                               `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
                               `data_id` varchar(255) NOT NULL COMMENT 'data_id',
                               `group_id` varchar(128) DEFAULT NULL COMMENT 'group_id',
                               `content` longtext NOT NULL COMMENT 'content',
                               `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
                               `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
                               `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
                               `src_user` text COMMENT 'source user',
                               `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
                               `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
                               `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
                               `c_desc` varchar(256) DEFAULT NULL COMMENT 'configuration description',
                               `c_use` varchar(64) DEFAULT NULL COMMENT 'configuration usage',
                               `effect` varchar(64) DEFAULT NULL COMMENT '配置生效的描述',
                               `type` varchar(64) DEFAULT NULL COMMENT '配置的类型',
                               `c_schema` text COMMENT '配置的模式',
                               `encrypted_data_key` varchar(1024) NOT NULL DEFAULT '' COMMENT '密钥',
                               PRIMARY KEY (`id`),
                               UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';

/******************************************/
/*   表名称 = config_info  since 2.5.0                */
/******************************************/
CREATE TABLE `config_info_gray` (
                                    `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
                                    `data_id` varchar(255) NOT NULL COMMENT 'data_id',
                                    `group_id` varchar(128) NOT NULL COMMENT 'group_id',
                                    `content` longtext NOT NULL COMMENT 'content',
                                    `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
                                    `src_user` text COMMENT 'src_user',
                                    `src_ip` varchar(100) DEFAULT NULL COMMENT 'src_ip',
                                    `gmt_create` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'gmt_create',
                                    `gmt_modified` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'gmt_modified',
                                    `app_name` varchar(128) DEFAULT NULL COMMENT &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhuzhongji

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值