【Docker】Nacos的单机部署及集群部署

一、Nacos的介绍

Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

  1. 动态服务发现:Nacos支持DNS与RPC服务发现,提供原生SDK、OpenAPI等多种服务注册方式和DNS、HTTP与API等多种服务发现方式。
  2. 服务健康监测:Nacos提供对服务的实时健康检查,阻止向不健康的主机或服务实例发送请求。
  3. 动态配置服务:Nacos提供配置统一管理功能,能够以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。
  4. 动态DNS服务:Nacos支持动态DNS服务权重路由,能够实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。
  5. 服务及其元数据管理:Nacos支持从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的SLA以及最首要的metrics统计数据。

二、单机部署

1、准备

开启docker

systemctl start docker

创建目录

mkdir -p mysql/{conf,data,script}

my.cnf配置文件从主机拖到conf文件夹中

my.cnf

[client]
default-character-set=utf8[mysql]
default-character-set=utf8[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
secure-file-priv=/var/lib/mysql-files
user=mysql# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pidinit_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
# default: sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# modeified: 
sql_mode= STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_allowed_packet=10M
default-time_zone='+8:00'
default_authentication_plugin=mysql_native_password

创建一个mysql容器:m1,自动连接了默认网络中的网桥(Bridge)

docker run \
--name m1 \
-v /root/mode/mysql/conf/my.cnf:/etc/my.cnf \
-v /root/mode/mysql/data:/var/lib/mysql \
-v /root/mode/mysql/script:/script \
--privileged=true \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql/mysql-server:5.7

2、数据准备

登录MySQL容器

进入:

docker exec -it m1 bash

登入mysql:

mysql -uroot -p

输入设置好的密码:123456

创建一个数据库存放数据:

create database nacos;

使用数据库:

use nacos;

对应目录放入我们的数据脚本

执行指定路径中sql的脚本:

source  /script/nacos-mysql.sql;  

之后查看数据表:

show tables; 

进行用户的授权及密码设置:

grant all on *.* to root@'%' identified by '123456'; 

重启mysql :

docker restart m1

3、下载Nacos镜像

下载Nacos镜像

docker pull nacos/nacos-server

查看m1容器信息:

docker inspect m1

找到对应的IP,后面需要

4、开发访问端口

查看防火墙列表的端口:
 

firewall-cmd --zone=public --list-ports

开放端口8848:
 

firewall-cmd --zone=public --add-port=8848/tcp --permanent

更新防火墙端口:
 

firewall-cmd --reload

5、配置

创建并且运行nacos,及配置MySQL中的用户密码及m1的IP和端口映射

docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.17.0.2 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-p 8848:8848 \
--name nacos \
nacos/nacos-server

可以使用命令查看该容器是否运行成功:

docker logs nacos

然后就可以进行访问了

三、集群部署

1、创建容器

创建自定义网络

docker network create --subnet 172.18.0.0/16  mode

将自定义网络和网桥连接

docker network connect mode m1

查看m1容器

docker inspect m1

2、配置

创建并且运行nacos01并进行配置

docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.18.0.102:8848  172.18.0.103:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=m1 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-p 8848:8848 \
--name nacos01 \
--net  mode \
--ip  172.18.0.101 \
--restart=always \
nacos/nacos-server

创建多个并进行配置

nacos02 

docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.18.0.101:8848  172.18.0.103:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=m1 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
--name nacos02 \
--net  mode \
--ip  172.18.0.102 \
--restart=always \
nacos/nacos-server

nacos03

docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.18.0.101:8848  172.18.0.102:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=m1 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
--name nacos03 \
--net  mode \
--ip  172.18.0.103 \
--restart=always \
nacos/nacos-server

可查看节点

3、负载均衡

在mode目录中创建目录:

mkdir -p nginx/conf.d

在conf.d目录中创建并且编辑配置文件default.conf

编辑

vim default.conf

集群nacos01,nacos02,nacos03的容器IP

#服务器的集群
upstream nacosList {  server nacos01:8848 weight=1; server nacos02:8848 weight=1; server nacos03:8848 weight=1; 
} server {listen  80;server_name  www.wfzldr.com;location / {root   /etc/nginx/html/;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}location  /nacos {proxy_pass  http://nacosList;}}

创建并且运行负载均衡的容器

docker run -itd \--name nginx \-v /root/mode/nginx/conf.d:/etc/nginx/conf.d \-p 80:80 \--net mode \nginx

ip地址/nacos即可访问实现负载均衡

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

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

相关文章

Python数据分析案例32——财经新闻爬虫和可视化分析

案例背景 很多同学的课程作业都是需要自己爬虫数据然后进行分析,这里提供一个财经新闻的爬虫案例供学习。本案例的全部数据和代码获取可以参考:财经新闻数据 数据来源 新浪财经的新闻网,说实话,他这个网站做成这样就是用来爬虫的…

鸿蒙开发(五)鸿蒙UI开发概览

从用户角度来讲,一个软件拥有好看的UI,那是锦上添花的事情。再精确的算法,再厉害的策略,最终都得通过UI展现给用户并且跟用户交互。那么,本篇一起学习下鸿蒙开发UI基础知识,认识下各种基本控件以及使用方式…

Zoho Survey评价:功能全面,值得一试

通常来讲,我们在使用一款问卷调查制作工具制作问卷时会有哪些需求呢? 用户需求 1、操作简单,易上手。 2、能够满足用户个性化的需求。 3、提供多语言服务。 4、能够帮助发布以及数据收集。 5、简化数据分析 市面上的问卷调查制作工具都…

探索FTP:原理、实践与安全优化

引言 在正式开始讲解之前,首先来了解一下文件存储的类型有哪些。 DAS、SAN和NAS是三种不同的存储架构,分别用于解决不同场景下的数据存储需求。 DAS (Direct Attached Storage 直接附加存储):DAS 是指将存储设备(如硬盘&#x…

阿里云国外云服务器地域、收费标准及活动报价参考

阿里云国外服务器优惠活动「全球云服务器精选特惠」,国外服务器租用价格24元一个月起,免备案适合搭建网站,部署独立站等业务场景,阿里云服务器网aliyunfuwuqi.com分享阿里云国外服务器优惠活动: 全球云服务器精选特惠…

AI语音合成工具-Lalamu Studio

近期,Lalamu Studio开启了beta版本测试:Lalamu Studio。该工具整合了TTS和lip sync功能,可以让任意视频中的人物开口说话,并精确模拟口型。 例如,选择一段视频素材,添加由Ai合成的语音,即可完成…

为什么要选择“零代码”开发的智慧能源管理平台?

全球低代码市场发展较早,集中度逐渐凸显,零代码市场尙未形成市场格局,很多企业出现“业务部门不懂技术,技术部门不懂业务”的现象往往会制约软件的开发进度,如何快速搭建软件系统应用,助力业务增长与效率提…

京东云开发者DDD妙文欣赏(1)

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 京东云开发者原文链接:DDD落地实践-架构师眼中的餐厅>>,以下简称《餐厅》。 我截图时,阅读量有6044,在同类文章中已经算是热文了…

山西电力市场日前价格预测【2024-01-20】

日前价格预测 预测说明: 如上图所示,预测明日(2024-01-20)山西电力市场全天平均日前电价为304.16元/MWh。其中,最高日前电价为486.22元/MWh,预计出现在18:15。最低日前电价为87.43元/MWh,预计出…

adb 配对+无线连接

配对 打开手机开发者选项-无线调试-使用配对码配对设备 出现ip端口和配对码后,电脑输入命令: adb pair ip:端口 eg:adb pair 192.168.137.244:39683 提示输入配对码:就按照手机上的输入。 此时配对成功 连接 再使用命令adb connect ip:port…

Java工具类:将xml转为Json

目录 一、场景二、工具类三、测试类四、测试结果 一、场景 在对接第三方接口时,由于接口返回的并不是常见的Json,而是XML,所以需要将XML转为Json,方便后续处理 二、工具类 package com.xxx.util;import org.apache.commons.lang…

力扣 | 15. 三数之和

暴力解法import java.util.*;public class _15_ThreeSum1 {public List<List<Integer>> threeSum(int[] nums) {if (nums null || nums.length < 3)return new ArrayList<>();Set<List<Integer>> res new HashSet<>();Arrays.sort(nu…

Linux的常用命令

查看命令的帮助 命令名 --help 切换目录命令cd cd app 切换到app目录 cd .. 切换到上一层目录 cd / 切换到系统根目录 cd ~ 切换到用户主目录 cd - 切换到上一个所在目录 使用tab键来补全文件路径 列出文件列表&#xff1a;ls ll ls(list)是一个非常有用的命令&…

排序:计数排序

目录 思想&#xff1a; 操作步骤&#xff1a; 思路&#xff1a; 注意事项&#xff1a; 优缺点&#xff1a; 代码解析&#xff1a; 完整代码展示&#xff1a; 思想&#xff1a; 计数排序又称为鸽巢原理&#xff0c;是对哈希直接定址法的变形应用。 操作步骤&#xff…

基于 Hologres+Flink 的曹操出行实时数仓建设

本文整理自曹操出行实时计算负责人林震基于 HologresFlink 的曹操出行实时数仓建设的分享&#xff0c;内容主要分为以下六部分&#xff1a; 曹操出行业务背景介绍曹操出行业务痛点分析HologresFlink 构建企业级实时数仓曹操出行实时数仓实践曹操出行业务成果分析未来展望 一、曹…

AI新势力|将创业当作修行的BookGPT

近期&#xff0c;科技慢半拍联合AIGC开放社区采访了AI创业产品BootGPT的创始人陆再谋。陆总分享了他的创业之旅&#xff0c;从贵州到北京&#xff0c;再回到贵州的整段创业经历&#xff0c;从最初的困难到逐渐取得的成果&#xff0c;打造出了BookGPT这款创业产品。 在本次访谈中…

c++学习笔记-STL案例-机房预约系统4-管理员模块

前言 衔接上一篇“c学习笔记-STL案例-机房预约系统3-登录模块”&#xff0c;本文主要设计管理员模块&#xff0c;从管理员登录和注销、添加账号、显示账号、查看机房、清空预约五个功能进行分析和实现。 目录 7 管理员模块 7.1 管理员登录和注销 7.1.1 构造函数 ​编辑7.1.2…

加速电压对扫描电子显微镜成像的影响

扫描电子显微镜&#xff08;SEM&#xff09;是一种利用聚焦电子束扫描样品表面&#xff0c;通过激发和收集二次电子、特征X射线等信号&#xff0c;获得样品表面形貌和成分信息的分析仪器。在SEM成像过程中&#xff0c;加速电压是一个关键参数&#xff0c;对成像效果具有重要影响…

【概述版】悲剧先于解析:在大型语言模型的新时代,历史重演了

这篇论文探讨了大型语言模型&#xff08;LLM&#xff09;的成功对自然语言处理&#xff08;NLP&#xff09;领域的影响&#xff0c;并提出了在这一新时代中继续做出有意义贡献的方向。作者回顾了2005年机器翻译中大型语法模型的第一个时代&#xff0c;并从中汲取教训和经验。他…

运动型蓝牙耳机推荐哪款?2024运动耳机排行榜最新

​运动耳机在运动爱好者的装备清单中占有重要地位&#xff0c;要求舒适佩戴、卓越音质和环境适应性。市面上的运动耳机琳琅满目&#xff0c;选择合适的可能令人犹豫。那么都有哪些运动耳机值得入手呢&#xff1f;今天来跟大家聊聊运动耳机推荐哪款。 1.南卡开放式耳机&#xff…