5.Naocs系列之集群部署

news2024/10/6 4:04:19

本文学习nacos基于docker的集群部署

1. 新增mysql8 Dockerfile文件

// online/shenjian/nacos/nacosCluster/image/mysql
FROM mysql:8.0.30
ADD https://raw.githubusercontent.com/alibaba/nacos/develop/distribution/conf/mysql-schema.sql /docker-entrypoint-initdb.d/nacos-mysql.sql
RUN chown -R mysql:mysql /docker-entrypoint-initdb.d/nacos-mysql.sql
EXPOSE 3306
CMD ["mysqld", "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"]

2. 新增环境配置

  • 新建mysql.env文件
// online/shenjian/nacos/nacosCluster/env
TZ=Asia/Shanghai
MYSQL_ROOT_HOST=%
MYSQL_ROOT_PASSWORD=root
MYSQL_DATABASE=nacos_config
MYSQL_USER=nacos
MYSQL_PASSWORD=nacos
  • 新建nacos.env文件
// online/shenjian/nacos/nacosCluster/env
TZ=Asia/Shanghai
// 基于hostname域名模式
PREFER_HOST_MODE=hostname
NACOS_AUTH_ENABLE=true
MODE=cluster
NACOS_SERVERS=nacos1:8848 nacos2:8848 nacos3:8848
MYSQL_SERVICE_HOST=mysql
MYSQL_SERVICE_DB_NAME=nacos_config
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=nacos
MYSQL_SERVICE_PASSWORD=nacos
MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true

3. 新增nacos-cluster.yaml

我们在yaml文件中采用了tags标签,请确认docker客户端是否支持,不支持请升级,欢迎关注算法小生公众号与我互动

version: '3.8'

services:
    mysql:
        container_name: mysql
        build:
            context: .
            dockerfile: ./image/mysql/Dockerfile
            tags:
                - "example/mysql:8.0.30"
        image: example/mysql:8.0.30
        env_file:
            - env/mysql.env
        ports:
            - "3306:3306"
        healthcheck:
            test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
            interval: 5s
            timeout: 10s
            retries: 10
    nacos1:
        hostname: nacos1
        container_name: nacos1
        image: nacos/nacos-server:2.0.3
        ports:
            - "8848:8848"
            - "9848:9848"
        env_file:
            - env/nacos.env
        restart: always
        depends_on:
            mysql:
                condition: service_healthy

    nacos2:
        hostname: nacos2
        image: nacos/nacos-server:2.0.3
        container_name: nacos2
        ports:
            - "8849:8848"
            - "9849:9848"
        env_file:
            - env/nacos.env
        restart: always
        depends_on:
            mysql:
                condition: service_healthy
    nacos3:
        hostname: nacos3
        image: nacos/nacos-server:2.0.3
        container_name: nacos3
        ports:
            - "8850:8848"
            - "9850:9848"
        env_file:
            - env/nacos.env
        restart: always
        depends_on:
            mysql:
                condition: service_healthy

4. 运行并验证集群

docker-compose -f nacos-cluster.yaml up -d
  • 在docker客户端我们看到容器全部启动成功

  • 进入到任一nacos,我们在集群模式->节点列表中可以看到三台节点信息

  • 点击节点元数据,我们可以看到采用Raft算法7848端口进行选举,并且当前leader主节点为nacos1

  • 我们在看下数据源连接127.0.0.1用户名root密码root连接mysql,数据库nacos_config及下面表已创建

5. 额外的话

在实际部署的时候,对应数据库个人建议实体机器部署,我们在线上发现K8S部署nacos集群会出现mysql超时抖动问题,自从mysql迁移到实体机器后,并未出现该问题

  • 7848端口:nacos采用Raft算法选举主节点通信用
  • 8848端口:客户端连接用
  • 9848端口:nacos2及其以后,客户端gRPC请求服务端用
  • 9849端口:服务端gRPC请求服务端端口,用于服务间同步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/86727.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

极客时间Kafka - 13 Kafka 中的高水位和 Leader Epoch 机制

文章目录1. 什么是高水位?2. 高水位的作用3. 高水位更新机制1. Leader 副本高水位更新机制2. Follower 副本高水位更新机制4. 副本同步机制解析5. Leader Epoch你可能听说过高水位(High Watermark),但不一定耳闻过 Leader Epoch。…

vxe-table 实现表格填写自动计算且限制数值的复杂操作

vxe-table 实现表格填写自动计算且限制数值复杂操作 效果 演示思路 输入框设置最大值 :max"row.max"输入框调用方法blur"updateFooterEvent(row, $event)" input" if (row[item.field] > row.max) { row[item.field] row.max; } " 上代码…

我们是如何追逐元宇宙、XR等“概念股”浪潮的?

作者:金擘(渚薰) 1.今年我们迈出的第一步 随着淘宝人生小屋项目的正式上线,淘宝人生今年的元宇宙规划初步成型。 加上在 S1 同淘宝直播团队的合作上线的 Disney 毛毛狂欢馆,我们也正式迈出了“元宇宙”技术的第一步。 今年是淘宝人生上线 3…

数智技术,企业绿色低碳转型的催化剂?大咖说新一期每周推荐来袭!

“双碳”战略下,企业会遇到哪些机遇和挑战?中小企业如何实现绿色转型?数字化又在其中发挥了怎样的作用? 介绍: 阿里云能耗云总经理 周文闻 施耐德电气首席数字化设计师 毛春景 “双碳”战略下,企业会遇到…

你写过哪些有趣的python?(附零基础学习资料)

前言 某网站上有个浏览超过400万的问题:可以用 Python 编程语言做哪些神奇好玩的事情? 我先举一个很不专业的栗子… 然后再找几个人抬一堆例子来… 不是很稀饭《复联》嘛,看了《复联4》,就用50行Python代码做了这些:…

Word控件Spire.Doc 【超链接】教程(4):如何修改Word文档中的超文本

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

【leetcode】从前序与中序遍历序列构造二叉树

一、题目描述 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出:…

rk3399-uboot2017-增加串口通信

一、主要还是解决这个问题,最后没办法,只能进行串口通信,来识别屏幕的类型了。 基本步骤如下: 1. uboot阶段发送串口指令,等待串口回复数据,根据数据识别屏幕类型 2.在bootargs增加一个自定义的参数&…

一个完整的项目是如何开展的:对项目生涯的总结

我正在参加「掘金启航计划」 变量的类型指的是变量的特性或特征,比如表示数字类型、文本类型、集合类型等,表示的是一类数据。 Dart提供以下的内置类型: 数字:int, double (整型(表示整数),浮点型(表示小数))布尔&a…

程序员如何平衡主业和副业?

什么是副业? 对于副业的定义,每个人都有自己的见解。不过对大部分人来说,副业相对于主业而言,就是工作日朝九晚五的工作称为主业,其他时间做的赚钱的项目或者工作可以称之为副 副业可以是写文章、拍视频、打代码&…

干扰管理学习日志8-------多用户联合_资源卸载_功率分配_计算资源分配

目录一、文章概述二、系统模型环境三、理论模型1.系统目标2.约束条件3.公式推导四、算法设计1.上行链路功率分配策略(1)任务目标(2)伪代码2.中央服务器算力分配策略3.任务卸载策略(1)任务目标(2)卸载集缩小条件(3)卸载集扩充条件(4)策略(5)伪代码五、性能表征本文是对论文《Mul…

[Linux]----初始网络

文章目录前言一、计算机网络的背景重新看待计算机结构网络发展认识"协议"二、网络协议初始软件分层协议分层OSI七层模型TCP/IP五层(四层)模型三、网络传输的基本流程网络和操作系统之间的关系局域网通信的原理四、数据包的封装和分用五、网络中的地址管理认识IP地址认…

2004-2020年全国30省工业污染治理完成投资数据

2004-2020年全国30省工业污染治理完成投资数据 1、时间:2004-2020年 2、范围:包括全国30个省,不含西藏 3、来源:国家统计J 4、缺失情况说明:无缺失 5、指标说明: 目前虽然采取了一系列环境规制相关政…

[附源码]Python计算机毕业设计SSM基于Web学术会议投稿管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

二元灰狼优化(BGWO)应用于特征选择任务(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 特征选择是当前信息领域,尤其是模式识别领域的研究热点。该代码演示了BGWO如何使用基准数据集Main解决特征选择问题。 &#…

python国际化课程capstone(ML预测ACM队员获奖概率)

目录 前言 原始数据集 爬虫部分 爬取每个队员在buct做题数量 爬取每个队员codeforces的最高分,注册时间,解题数量 爬取每个队员有效做题时间 数据处理部分 模型部分 Linear Regression XGBregressiongridsearchCV调参 Random Forset 前言 刚…

Redis框架(九):大众点评项目 缓存工具封装

大众点评项目 缓存工具封装需求:缓存工具封装业务实现代码总览总结SpringCloud章节复习已经过去,新的章节Redis开始了,这个章节中将会回顾Redis实战项目 大众点评 主要依照以下几个原则 基础实战的Demo和Coding上传到我的代码仓库在原有基础…

视频直播技术干货:一文读懂主流视频直播系统的推拉流架构、传输协议等

1、引言 随着移动网络网速的提升与资费的降低,视频直播作为一个新的娱乐方式已经被越来越多的用户逐渐接受。特别是最近这几年,视频直播已经不仅仅被运用在传统的秀场、游戏类板块,更是作为电商的一种新模式得到迅速成长。 本文将通过介绍实时…

爆火Chatgpt注册完全指南

1 chatgpt 简介 ChatGPT是一种语言模型,它被训练来对对话进行建模。它能够通过学习和理解人类语言来进行对话,并能够生成适当的响应。ChatGPT使用了一种叫做Transformer的神经网络架构,这是一种用于处理序列数据的模型,能够在输入…

第33篇 网络(三)FTP(一)

导语 上一节我们讲述了HTTP的编程,这一节讲述与其及其相似的FTP的编程。FTP即FileTransfer Protocol,也就是文件传输协议。FTP的主要作用,就是让用户连接上一个远程计算机,查看远程计算机有哪些文件,然后把文件从远程…