当前位置: 首页 > article >正文

微服务开发-Nacos服务治理

注册中心原理

在这里插入图片描述
流程如下:

  • 服务启动时就会注册自己的服务信息(服务名、IP、端口)到注册中心;
  • 调用者可以从注册中心订阅想要的服务,获取服务对应的实例列表(1个服务可能多实例部署);
  • 调用者自己对实例列表负载均衡,挑选一个实例;
  • 调用者向该实例发起远程调用。

服务治理中的三个角色分别是什么?
服务提供者:暴露服务接口,供其它服务调用;
服务消费者:调用其它服务提供的接口;
注册中心:记录并监控微服务各实例状态,推送服务变更信息。

消费者如何知道提供者的地址?
服务提供者会在启动时注册自己信息到注册中心,消费者可以从注册中心订阅和拉取服务信息。

消费者如何得知服务状态变更?
服务提供者通过心跳机制向注册中心报告自己的健康状态,当心跳异常时注册中心会将异常服务剔除,并通知订阅了该服务的消费者。

当提供者有多个实例时,消费者该选择哪一个?
消费者可以通过负载均衡算法,从多个实例中选择一个,如:随机,轮询,加权轮询等。
spring-cloud-alibaba:https://spring.io/projects/spring-cloud-alibaba
Nacos官方文档:https://nacos.io/docs/latest/what-is-nacos/
Nacos下载地址:https://github.com/alibaba/nacos/releases

Nacos 是一个易于使用的动态服务发现、配置管理和服务管理平台,旨在帮助开发人员快速构建云原生应用。下面是 Nacos 的完整使用流程,包括安装、配置、注册服务、服务发现以及配置管理。

搭建Nacos注册中心的三种方式:

方式一:Nacos 官网安装直接使用

1、下载安装包
从 Nacos 的 GitHub Releases 页面 下载最新版本的 Nacos。

2、解压并启动
打开终端cd进入存放 tar.gz 文件的目录

# 解压 Nacos
tar -zxvf nacos-server-<version>.tar.gz
cd nacos/bin

3、启动 Nacos Server
使用以下命令启动 Nacos 服务(默认为嵌入式数据库模式):

# 启动 Nacos
sh startup.sh -m standalone

4 访问 Nacos 控制台
在浏览器中访问 http://localhost:8848/nacos。默认的用户名和密码都是 nacos

方式二:Docker拉取Nacos镜像

以下是完整的步骤,用于拉取并部署 Nacos 镜像,确保过程流畅且易于理解:

步骤 1:安装 Docker
安装centos7虚拟机和安装docker:详细安装过程与环境准备见课程:(2024最新SpringCloud微服务开发与实战,java黑马商城项目微服务实战开发(涵盖MybatisPlus、Docker、MQ、ES、Redis高级等))

步骤 2:拉取 Nacos 镜像
使用以下命令拉取 Nacos 的 Docker 镜像(你可以选择不同版本):

docker pull nacos/nacos-server:v2.1.0-slim

步骤 3:创建环境变量文件
创建一个名为 custom.env 的文件,放置在centos虚拟机中./nacos/ 目录下,并添加所需的环境变量。可以使用以下命令创建文件并编辑:

mkdir -p ./nacos
nano ./nacos/custom.env

custom.env 中添加如下内容(根据需要调整):
第一组配置:

MODE=standalone
SPRING_DATASOURCE_HOST=your_db_host
SPRING_DATASOURCE_PORT=3306
SPRING_DATASOURCE_USERNAME=your_db_username
SPRING_DATASOURCE_PASSWORD=your_db_password

第二组配置:

PREFER_HOST_MODE=hostname
MODE=standalone
SPRING_DATASOURCE_PLATFORM=mysql
MYSQL_SERVICE_HOST=192.168.254.129
MYSQL_SERVICE_DB_NAME=nacos
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=root
MYSQL_SERVICE_PASSWORD=123
MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai

第一组配置:更通用和灵活,适合快速测试或开发环境。用户可以根据需要填写相应的数据库连接信息。
第二组配置:适合在明确使用 MySQL,并且需要详细配置连接参数的场景,通常用于生产环境。

注意:
1、使用 Nacos 的默认内存存储模式(即不使用外部数据库),你可以将 Nacos 的运行模式设置为 standalone,并且不需要配置与数据库相关的环境变量。这是因为在内存存储模式下,Nacos 会将所有数据存储在内存中,而不依赖于外部数据库(如 MySQL)。但是使用 MySQL 可以确保 Nacos 的数据在重启后不会丢失。而内存存储仅在应用运行期间有效,重启后数据会丢失。对于需要保持配置、服务注册信息和其他重要数据的应用来说,持久化存储是必要的。
2、Nacos 本身并不会自动创建数据库。如果 Nacos 连接的 MySQL 数据库不存在,启动时会出现连接错误。你需要手动创建 Nacos 所需的数据库,并确保数据库的名称与在 custom.env 中配置的名称一致
3、注意将192.168.254.129替换为你自己的虚拟机IP地址。

步骤 4:运行 Nacos 容器

使用以下命令运行 Nacos 容器:

docker run -d \
  --name nacos \
  --env-file ./nacos/custom.env \
  -p 8848:8848 \
  -p 9848:9848 \
  -p 9849:9849 \
  --restart=always \
  nacos/nacos-server:v2.1.0-slim

注意
1.-p 8848:8848:
这是 Nacos 的主要服务端口。你可以通过访问 http://localhost:8848/nacos 来访问 Nacos 的管理界面。容器内部的 8848 端口与宿主机的 8848 端口绑定,使得从宿主机发出的请求能够被 Nacos 服务接收。
2.-p 9848:9848:
这个端口通常用于 Nacos 的集群管理。Nacos 支持集群模式,该端口用于集群节点之间的通信。如果您不打算使用集群模式,可能不需要直接使用这个端口,但映射它可以为未来的扩展提供便利。
3.-p 9849:9849:
这个端口用于 Nacos 的控制台安全通信,通常用于 HTTPS 请求的处理。和上面的 9848 类似,虽然默认情况下你可能不需要使用这个端口,但映射它可以提供额外的功能。
4.–env-file 选项指定一个环境变量文件。该文件中的每一行都会被导入为环境变量。在这个例子中,./nacos/custom.env 包含了 Nacos 连接 MySQL 数据库的相关配置,如数据库地址、用户名和密码等。
5.–restart=always:
设置容器的重启策略为“始终”。这意味着如果容器停止运行,Docker 会自动尝试重启它,确保服务持续可用。

步骤 5:验证 Nacos 是否正常运行

你可以通过访问浏览器访问 Nacos 的管理界面,输入以下 URL:

http://你的虚拟机IP地址:8848/nacos

默认的用户名和密码是:nacos

方式三:已有Nacos镜像文件时Docker加载镜像

1、创建一个名为 custom.env 的文件,放置在centos虚拟机中 ./nacos/ 目录下,并添加所需的环境变量。可以使用以下命令创建文件并编辑:

mkdir -p ./nacos
nano ./nacos/custom.env

2、在 custom.env 中添加配置内容:详细见方式二中的步骤3;

注意:Nacos 本身并不会自动创建数据库。如果 Nacos 连接的 MySQL 数据库不存在,启动时会出现连接错误。你需要手动创建 Nacos 所需的数据库,并确保数据库的名称与在 custom.env 中配置的名称一致

3、将Nacos镜像文件nacos.tar拖进centos虚拟机的root目录下:
运行以下命令加载镜像并验证镜像是否加载成功:

docker load -i nacos.tar
docker images

4、运行 Nacos 容器**
使用以下命令运行 Nacos 容器:注意点见:方式二中的步骤4;

docker run -d \
  --name nacos \
  --env-file ./nacos/custom.env \
  -p 8848:8848 \
  -p 9848:9848 \
  -p 9849:9849 \
  --restart=always \
  nacos/nacos-server:v2.1.0-slim

5、验证 Nacos 是否正常运行
查看Nacos日志:docker logs -f nacos
你可以通过访问浏览器访问 Nacos 的管理界面,输入以下 URL:

http://你的虚拟机IP地址:8848/nacos

默认的用户名和密码是:nacos

服务注册

服务发现和负载均衡

待更新…


http://www.kler.cn/news/361426.html

相关文章:

  • Python语法基础:复数
  • 子比主题美化 – 评论区添加随机夸夸功能(修复api)
  • 重生之“我打数据结构,真的假的?”--1.顺序表(无习题)
  • YOLOv11改进-卷积-引入小波卷积WTConv 解决多尺度小目标问题
  • Java项目:155 springboot酒店管理系统(含论文+ppt+开题报告+说明文档)
  • 【Ansiable】ansible的模块和主机清单
  • 前端算法:链表(力扣141、237题解法)
  • 15分钟学Go 第7天:控制结构 - 条件语句
  • 前端开发:Vue中数据绑定视图
  • 云计算的一些基本概念
  • Java | Leetcode Java题解之第502题IPO
  • mybatis更新后立即获取更新记录的自增主键
  • Excel常用操作培训
  • 01 设计模式-创造型模式-工厂模式
  • ES6面试题:(第一天)
  • nextjs项目中,使用postgres的完整案例
  • C#第5讲:类和对象的使用
  • 408算法题leetcode--第37天
  • 【经验】无线鼠标、键盘的usb接收器配对
  • autMan内置redis服务的使用方法
  • 记,项目解决
  • androidrro ResourceOverlay 调查
  • Gstreamer的webrtcbin插件
  • Nova-Admin:基于Vue3、Vite、TypeScript和NaiveUI的开源简洁灵活管理模板
  • Java代码说明设计模式
  • QT--文本框 QLineEdit、qtextedit