docker-nacos-v3

nacos官网: Redirecting to: https://nacos.io/

  • 服务发现和服务健康监测

    Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生SDK、OpenAPI、或一个独立的Agent TODO注册 Service 后,服务消费者可以使用DNS TODO 或HTTP&API查找和发现服务。

    Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。Nacos 支持传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查。 对于复杂的云环境和网络拓扑环境中(如 VPC、边缘网络等)服务的健康检查,Nacos 提供了 agent 上报模式和服务端主动检测2种健康检查模式。Nacos 还提供了统一的健康检查仪表盘,帮助您根据健康状态管理服务的可用性及流量。

  • 动态配置服务

    动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。

    动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷。

    配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。

    Nacos 提供了一个简洁易用的UI (控制台样例 Demo) 帮助您管理所有的服务和应用的配置。Nacos 还提供包括配置版本跟踪、金丝雀发布、一键回滚配置以及客户端配置更新状态跟踪在内的一系列开箱即用的配置管理特性,帮助您更安全地在生产环境中管理配置变更和降低配置变更带来的风险。

  • 动态 DNS 服务

    动态 DNS 服务支持权重路由,让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以 DNS 协议为基础的服务发现,以帮助您消除耦合到厂商私有服务发现 API 上的风险。

    Nacos 提供了一些简单的 DNS APIs TODO 帮助您管理服务的关联域名和可用的 IP:PORT 列表.

  • 服务及其元数据管理

    Nacos 能让您从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 metrics 统计数据。

  1. 下载(github)

    • nacos-server1.4.2.zip( windows部署版)

    • nacos1.4.2.zip (windows源码)

nacos-windows单机版

  1. 将nacos-server1.4.2.zip解压

  2. 在nacos/bin运行cmd

  3. 执行startup.cmd -m standalone

    • standalone单机版

    • cluster集群版

    • 说明:可以直接修改startup.cmd文件中set MODE="cluster"

#nacos启动方式为:standalone
"nacos is starting with standalone"
#nacos监听端口8848,web应用根是/nacos
2023-02-27 08:58:27,174 INFO Tomcat started on port(s): 8848 (http) with context path '/nacos'
#embedded storage:内置数据库
2023-02-27 08:58:27,178 INFO Nacos started successfully in stand alone mode. use embedded storage
  1. 测试

http://localhost:8848/nacos

用户名和密码都是:nacos

nacos-docker单机版

https://hub.docker.com/

  1. 运行容器

docker run --name n1 -e MODE=standalone -p 8848:8848 -d nacos/nacos-server:1.4.2
  1. 测试

http://192.168.206.130:8848/nacos

nacos-docker-mysql单机版

  1. 安装mysql

docker run -d --name zking-mysql --network net-ry  \
-v /data/mysql/conf/my.cnf:/etc/my.cnf \
-v /data/mysql/data:/var/lib/mysql \
--privileged=true --restart=always \
-e MYSQL_ROOT_PASSWORD=sasa -p 3306:3306 \
mysql/mysql-server:5.7

参考上节内容,需要net-ry网络

  1. mysql充许远程连接

# 进入容器
docker exec -it zking-mysql /bin/bash
# 登录
mysql -u root -p;
# 添加用户并授权
grant all privileges on *.* to root@'%' identified by 'sasa' with grant option;
# 刷新权限
flush privileges; 
  1. 创建数据库nacos-config

create database nacos_config;
  1. 执行nacos源码中nacos-1.4.2\distribution\conf中的nacos-mysql脚本

  2. 运行nacos容器

docker run -d \-e MODE=standalone \-e SPRING_DATASOURCE_PLATFORM=mysql \-e MYSQL_SERVICE_HOST=zking-mysql \-e MYSQL_SERVICE_PORT=3306 \-e MYSQL_SERVICE_USER=root \-e MYSQL_SERVICE_PASSWORD=sasa \-e MYSQL_SERVICE_DB_NAME=nacos_config \-e MYSQL_DATABASE_NUM=1 \-e NACOS_APPLICATION_PORT=8848 \--restart=always \--network net-ry \--name n2 \-p 8849:8848 \nacos/nacos-server:1.4.2

mysql与nacos在一网络中net-ry中

nacos-docker-mysql集群版

为2与3

准备

环境准备

  1. 虚拟机内存为2G或更高

    • 进入虚拟机之后,使用free查看内存使用情况

  2. 虚拟机处理器

mysql安装

  • 下载镜像

docker pull mysql/mysql-server:5.7

不同镜像配置环境可能不同

  • 在宿主机中相关目录,用于挂载容器的相关数据

mkdir -p /data/mysql/{conf,data}
  • 编写my.cnf配置文件,在/data/mysql/conf目录中 (课件中有该文件,直接上传即可)

[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.pid##下面为添加的自定义配置
init_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容器

#格式一
docker run -p 3306:3306 --name zking-mysql -d  mysql/mysql-server:5.7
docker logs zking-mysql
#格式二
docker run -p 3306:3306 --name zking-mysql -e MYSQL_ROOT_PASSWORD=sasa -d   mysql/mysql-server:5.7

了解mysql目录结构

docker run -p 3306:3306 \
--name zking-mysql \
-v /data/mysql/conf/my.cnf:/etc/my.cnf \
-v /data/mysql/data:/var/lib/mysql \
--net=net-test \
--privileged=true \
--restart=always \
-e MYSQL_ROOT_PASSWORD=sasa \
-d mysql/mysql-server:5.7

参数说明: -p 3306:3306:宿主机端口:容器端口

--name mysql:容器名字

-v:挂载宿主机的一个目录, 持久化存储的关键所在,将主机目录挂载到容器对应目录,分别是:配置文件、日志文件、数据文件

-v /data/mysql/conf:/etc/mysql/conf.d -v /data/mysql/logs:/logs -v /data/mysql/data:/var/lib/mysql

--privileged=true:使用该参数,container内的root拥有真正的root权限, 否则,container内的root只是外部的一个普通用户权限

--restart=always:容器自动启动参数,其值可以为[no,on-failure,always] no为默认值,表示容器退出时,docker不自动重启容器 on-failure表示,若容器的退出状态非0,则docker自动重启容器,还可以指定重启次数,若超过指定次数未能启动容器则放弃 always表示,只要容器退出,则docker将自动重启容器

-e MYSQL_ROOT_PASSWORD=sasa:设置root的密码 -d mysql/mysql-server:5.7:后台启动模式及使用的镜像

  • 修改mysql允许Navicat远程连接

# 进入容器
docker exec -it zking-mysql /bin/bash
​
# 登录
mysql -u root -p;
​
# 授权
grant all privileges on *.* to root@'%' identified by 'sasa';
​
# 刷新权限
flush privileges; 

创建nacos需要的数据库

  • 将3306端口加入防火墙,使用mysql客户端链接数据库

  • 创建数据库

CREATE DATABASE IF NOT EXISTS nacos_config
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
  • 导入nacos数据(nacos安装目录下 conf目录中有脚本nacos-mysql.sql)

下载nacos镜像

docker pull nacos/nacos-server:1.4.2

创建自定义网络

docker network create mynet --subnet=192.168.0.0/16

获取nginx镜像

docker pull nginx

nacos集群部署

在真实环境下,为了便于主节点选举,通常集群机器通常为奇数台。

将mysql连接到mynet网络

docker network connect mynet zking-mysql --ip 192.168.0.11

此时可以查看mynet网络的具体配置:

docker network  inspect mynet

注: 如果mysql容器还没有创建,也可以创建mysql容器时指定网络配置,(上面已经将mysql连接到mynet,所以不用执行此步):

docker run \--name zking-mysql \--net mynet \--ip 192.168.0.11 \-v /data/mysql/conf/my.cnf:/etc/my.cnf \-v /data/mysql/data:/var/lib/mysql \--privileged=true \--restart=always \-e MYSQL_ROOT_PASSWORD=sasa \-d mysql/mysql-server:5.7

nacos集群

  • 启动第一个节点nacos节点

docker run -d \--net net-test \--name nacos01 \--hostname nacos01 \-e PREFER_HOST_MODE=hostname \-e MODE=cluster \-e NACOS_SERVERS="nacos01:8848 nacos02:8848 nacos03:8848" \-e SPRING_DATASOURCE_PLATFORM=mysql \-e MYSQL_SERVICE_HOST=zking-mysql \-e MYSQL_SERVICE_PORT=3306 \-e MYSQL_SERVICE_USER=root \-e MYSQL_SERVICE_PASSWORD=sasa \-e MYSQL_SERVICE_DB_NAME=nacos_config \-e MYSQL_DATABASE_NUM=1 \-e NACOS_APPLICATION_PORT=8848 \--restart=always \nacos/nacos-server:1.4.2

配置参考:

namedescriptionoption
MODEcluster模式/standalone模式cluster/standalone default cluster
NACOS_SERVERSnacos cluster地址eg. ip1,ip2,ip3
PREFER_HOST_MODE是否支持hostnamehostname/ip default ip
NACOS_SERVER_PORTnacos服务器端口default 8848
NACOS_SERVER_IP多网卡下的自定义nacos服务器IP
SPRING_DATASOURCE_PLATFORMstandalone 支持 mysqlmysql / empty default empty
MYSQL_MASTER_SERVICE_HOSTmysql 主节点host
MYSQL_MASTER_SERVICE_PORTmysql 主节点端口default : 3306
MYSQL_MASTER_SERVICE_DB_NAMEmysql 主节点数据库
MYSQL_MASTER_SERVICE_USER数据库用户名
MYSQL_MASTER_SERVICE_PASSWORD数据库密码
MYSQL_SLAVE_SERVICE_HOSTmysql从节点host
MYSQL_SLAVE_SERVICE_PORTmysql从节点端口default :3306
MYSQL_DATABASE_NUM数据库数量default :2
JVM_XMS-Xmsdefault :2g
JVM_XMX-Xmxdefault :2g
JVM_XMN-Xmndefault :1g
JVM_MS-XX:MetaspaceSizedefault :128m
JVM_MMS-XX:MaxMetaspaceSizedefault :320m
NACOS_DEBUG开启远程调试y/n default :n
TOMCAT_ACCESSLOG_ENABLEDserver.tomcat.accesslog.enableddefault :false
  • 启动第二个第三个 nacos节点

docker run -d \--net net-test \--name nacos02 \--hostname nacos02 \-e PREFER_HOST_MODE=hostname \-e MODE=cluster \-e NACOS_SERVERS="nacos01:8848 nacos02:8848 nacos03:8848" \-e SPRING_DATASOURCE_PLATFORM=mysql \-e MYSQL_SERVICE_HOST=zking-mysql \-e MYSQL_SERVICE_PORT=3306 \-e MYSQL_SERVICE_USER=root \-e MYSQL_SERVICE_PASSWORD=sasa \-e MYSQL_SERVICE_DB_NAME=nacos_config \-e MYSQL_DATABASE_NUM=1 \-e NACOS_APPLICATION_PORT=8848 \--restart=always \nacos/nacos-server:1.4.2
docker run -d \--net net-test \--name nacos03 \--hostname nacos03 \-e PREFER_HOST_MODE=hostname \-e MODE=cluster \-e NACOS_SERVERS="nacos01:8848 nacos02:8848 nacos03:8848" \-e SPRING_DATASOURCE_PLATFORM=mysql \-e MYSQL_SERVICE_HOST=zking-mysql \-e MYSQL_SERVICE_PORT=3306 \-e MYSQL_SERVICE_USER=root \-e MYSQL_SERVICE_PASSWORD=sasa \-e MYSQL_SERVICE_DB_NAME=nacos_config \-e MYSQL_DATABASE_NUM=1 \-e NACOS_APPLICATION_PORT=8848 \--restart=always \nacos/nacos-server:1.4.2

查看nacos启动信息

docker exec -it nacos01 cat /home/nacos/logs/nacos.log

使用nginx访问集群

  • 创建宿主机挂载目录

[root@localhost data]# mkdir -p /data/nginx/{conf,log,html}
  • 上传nginx.conf配置文件(在课件中已准备,上传到/data/nginx/conf目录即可)

配置文件内容如下:

worker_processes 1;
​
events {worker_connections 1024;
}
​
http {include mime.types;default_type  application/octet-stream;sendfile on;
​keepalive_timeout 65;gzip on;upstream  nacos-cluster {server    nacos01:8848  weight=1;server    nacos02:8848  weight=1;server    nacos03:8848  weight=1;}  server {listen       80;#监听80端口,可以改成其他端口server_name  localhost;#当前服务的域名
​#新增2:用于重定向至nacos集群location /nacos {proxy_pass http://nacos-cluster;}
​
​location / {root         /usr/share/nginx/html;#将要访问的网站的目录try_files $uri $uri/  /index.html;#该句代码是为解决history路由不能跳转的问题,在vue-router官网有介绍}
​#location  ^~/api/ {#^~/api/表示匹配前缀是api的请求,proxy_pass的结尾有/, 则会把/api/*后面的路径直接拼接到后面,即移除api#proxy_pass http://tomcats/;#}}
}
  • 启动nginx容器:

docker run \--name mynginx \--net mynet \-d -p 80:80 \-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \-v /data/nginx/html:/usr/share/nginx/html \--privileged=true \nginx:latest
  • 将mynginx同时连接到bridge网络,用于与宿主机通讯

[root@localhost ~]# docker network connect bridge mynginx
  • 访问控制台确认部署:

http://192.168.19.10/nacos部署微服务测试

将微服务注册地址改为虚拟机主机地址

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

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

相关文章

DevOps 详解:文化、实践与工具链

目录一、DevOps 定义与核心目标二、DevOps 关键原则与实践1. 持续集成(CI,Continuous Integration)2. 持续交付(CD,Continuous Delivery)3. 持续部署(Continuous Deployment)4. 监控…

人工智能之数学基础:常用的连续型随机变量的分布

本文重点 本文将介绍概率中非常重要的连续型随机变量的分布,主要有均匀分布、指数分布、正态分布 均匀分布 若随机变量X的概率密度为: 如果概率密度函数如上所示,则称X服从区间[ a, b]上的均匀分布,记作X~U[a,b] 均匀分布的概率密度函数的计算如下: 指数分布 指数分布…

【开题答辩全过程】以 校园帮帮团跑腿系统的设计与实现为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

Milvus 向量数据库开发实战指南

Milvus向量数据库是什么?-CSDN博客 一、核心概念解析 1.1 基础概念 1.1.1 Bitset(位集) 高效的数据表示方式,使用位数组替代传统数据类型 默认情况下,位值根据特定条件设置为 0 或 1 1.1.2 通道机制 PChannel&am…

vcruntime140.dll丢失解决办法

解决办法 安装Microsoft Visual C Redistributable https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?viewmsvc-170

LabVIEW实现跨 VI 簇按钮控制功能

​在 LabVIEW 开发场景中,常需实现不同 VI 间的交互操作。本功能借助 VI Server 技术,突破 VI 边界,实现对目标 VI 中簇内按钮控件的属性读取与控制,为多 VI 协同、对VI里已经实现的功能,可以在其他VI中直接使用&#…

JS箭头函数

JavaScript 的箭头函数 (Arrow Function) 是 ES6 (ECMAScript 2015) 引入的一种重要的函数语法特性,它用更简洁的方式定义函数,并改变了 this 的绑定行为。 箭头函数和传统函数的主要区别:特性箭头函数传统函数语法更简洁,省略 fu…

linux内核 - 文件系统相关的几个概念介绍

介绍文件系统之前,先了解下存储管理的几个概念:1. 硬盘:是最底层的存储介质,比如 /dev/sda, /dev/nvme0n1. 一个物理硬盘就是一个块设备,未经处理是只能顺序读写二进制数据。 2. 分区:就是在硬盘上划分出不…

边缘计算(Edge Computing)+ AI:未来智能世界的核心引擎

边缘计算(Edge Computing) AI:未来智能世界的核心引擎 文章目录边缘计算(Edge Computing) AI:未来智能世界的核心引擎摘要什么是边缘计算?为什么需要边缘计算?1. 延迟问题2. 带宽压力…

计算机视觉与深度学习 | ORB-SLAM3算法原理与Matlab复现指南

文章目录 一、算法核心原理 1.1 系统架构概述 1.2 数学模型基础 1.2.1 状态估计框架 1.2.2 视觉-惯导融合模型 1.3 关键创新点 二、关键模块实现细节 2.1 ORB特征提取与匹配 2.2 地图初始化 2.3 视觉-惯导融合 2.4 回环检测与优化 三、Matlab复现思路 3.1 系统模块划分 3.2 核心…

分布式光伏模式怎么选?从 “凭经验” 到 “靠数据”,iSolarBP 帮你锁定最优解

iSolarBP-阳光新能源旗下分布式光伏光储智能评估设计软件 iSolarBP是阳光新能源打造的分布式光伏/光储项目智能设计平台。提供无人机自动勘测、3D建模、高精度发电仿真、光储容量优化与经济分析一站式服务,助力开发者提升效率、降低成本和优化投资收益。https://iso…

MATLAB R2010b系统环境(四)MATLAB帮助系统

一、帮助命令MATLAB帮助命令包括help、lookfor以及模糊查询。1.1 help命令在命令窗口中直接输入help或help加函数名。(1)help:显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称,如下图:&…

“便农惠农”智慧社区系统(代码+数据库+LW)

摘要 随着城市化进程加速和信息技术快速发展,传统社区管理模式已难以满足现代社区高效管理和居民多元化服务需求。为解决社区管理中的信息孤岛问题、提升服务效率并增强居民生活体验,本文设计并实现了一套基于Spring Boot框架的智慧社区管理系统。该系统…

智慧金融服务平台问题剖析与改进策略

智慧金融服务平台问题剖析与改进策略 在数字化浪潮的推动下,智慧金融服务平台蓬勃发展,为用户带来了便捷的金融服务体验。然而,随着用户数量的不断增加和业务的日益复杂,平台也暴露出一些问题,其中数据准确性不足、异常…

【Vue2✨】Vue2 入门之旅(三):数据与方法

在前两篇文章中,我们学习了 Vue 的基础和模板语法。本篇我们将深入 数据与方法,理解 data、methods、computed、watch 的作用和区别。 目录 datamethodscomputedwatch小结 data Vue 实例中的 data 是数据源,模板会自动响应其中的变化。 &l…

自动化测试时,chrome浏览器启动后闪退的问题

之前运行的好好的,最近再次练习时发现会闪退,然后发现是驱动版本老的问题 (1)下载与之匹配的驱动器版本 Chrome for Testing availability 找到与Chrome版本前3位相同的目录,下载对应系统的压缩包 (2&am…

Dynamics 365 XrmToolBox工具之Clone Field Definitions

好久没有分享XrmToolBox的组件了,今天要分享的是下图中这个组件在建实体的时候,我们经常会碰到实体间一些字段存在重复,或者都可以直接复制黏贴加一些少量修改就可以生成第二个实体,但如果仅从D365本身来说,要做到复制…

UBUNTU之Onvif开源服务器onvif_srvd:1、编译

下载源码 编译时会下载东西,有可能需要VPN。 https://github.com/KoynovStas/onvif_srvd https://github.com/KoynovStas/onvif_srvd/tags 解压准备工作 sudo apt install -y flex bison byacc make cmake m4# for support encryption and WS-Security # 在低版…

深度学习跨领域应用探索:从技术落地到行业变革

深度学习不再是实验室里的 “高精尖技术”,而是渗透到各行各业的 “效率引擎”。它凭借强大的数据拟合与特征提取能力,在计算机视觉、自然语言处理、金融风控等领域打破传统技术瓶颈,甚至催生出全新的业务模式。本文将深入不同行业场景&#…

计算机网络:数据库(sqlite3)

一、常用的数据库ORACLE&#xff08;大型&#xff09;、Mysal&#xff08;开源常用&#xff09;、SQL server、Access、Sybse、Windows NT二、sqlite3&#xff08;一&#xff09;特性&#xff1a;<1>零配置&#xff0c;无需安装和配置<2>储存在单一磁盘文件中的一个…