5.注册中心的其他实现-Nacos

文章目录

  • 1.Nacos简介
  • 2.Nacos的安装
    • 2.1Nacos Windows本地启动不成功?
    • 2.2Linux环境下载并启动
  • 3. Nacos的使用
  • 4.Nacos的负载均衡
  • 5.Nacos 健康检查
  • 6.Nacos 环境隔离
  • 7.Nacos 配置中心
    • 7.1为什么需要配置中心
    • 7.2 Nacos配置中心使用
    • 7.3 Data id
    • 7.4Nacos 上Linux部署服务
    • 7.5 Nacos 和 Eureka的区别

大家好,我是晓星航。今天为大家带来的是 注册中心的其他实现-Nacos 相关的讲解!😀

1.Nacos简介

Nacos 是一个动态服务发现、配置和服务管理平台,提供注册中心、配置中心和动态DNS 服务三大功能。它是阿里巴巴开源的一款集成了动态服务发现、配置管理和服务管理功能的平台,旨在简化分布式系统开发和运维过程中服务发现与配置管理的复杂性。Nacos 是构建以“服务"为中心的现代应用架构的服务基础设施。

Nacos(Dynamic Naming and Configuration Service)

2.Nacos的安装

Nacos安装官网

image-20240531164437264

下载好后,解压

image-20240531164914567

目录介绍

image-20240531164608792

bin目录下脚本介绍

image-20240531164617219

最后将我们压缩包文件拖进虚拟机就可以

2.1Nacos Windows本地启动不成功?

Nacos默认启动模式默认是集群模式

image-20240531223700948

找到启动脚本,使用编辑器打开(可以是记事本也可以是vscode等编辑器)

image-20240531223801584

找到模式选择的地方

image-20240531224023723

更改为单机模式,然后保存关闭

image-20240531224110508

此时再次双击启动脚本会发现,我们的Nacos就启动成功了,并且端口为8848

image-20240531224232196

然后打开浏览器,通过网页访问:

image-20240531224402546

出现上图页面即代表我们启动成功了

如果是端口号占用打不开的话,我们可以选择更改Nacos的端口号

image-20240531225004012

使用记事本打开上图文件

image-20240531225102539

更改23行的端口号并保存,我们Nacos便会更改启动端口号

2.2Linux环境下载并启动

进入src文件夹再进行拖拽上传

cd /usr/local/src

image-20240531225758781

直接将本地的Nacos压缩包拖到Linux虚拟机上即可

image-20240531225554465

上传完毕后执行解压命令

unzip nacos-server-2.2.3.zip

image-20240531225909203

解压完毕后我们通过ls命令查看一下

然后进入bin目录,启动Nacos

cd bin/sh startup.sh -m standalone

image-20240531230407277

我们先去/nacos/conf/目录中的application.properties文件中查看一下端口号

vim application.properties

使用上面代码即可进入查看,按一下i就能编辑然后可以上下查阅。退出按一下esc并输入:wq保存。

image-20240531232124174

从上面日志可以看到我们这里的端口号为8848,但是我们直接访问是不能成功的,我们要先去云服务器上添加一个放行端口8848才能成功访问。

image-20240531232448548

博主使用的是腾讯云,这里就是拿腾讯云的添加放行端口来举例。

然后我们输入Linux虚拟机ip加端口号的方式访问一下Nacos页面

ip:8848/nacos

image-20240531232542360

出现上图即代表我们Linux上也安装成功了

3. Nacos的使用

1.引入spring-cloud-alibaba的依赖

image-20240601203236114

2.引入Nacos相关的依赖(引入Nacos依赖以及Loadbalance依赖)

image-20240601203428645

image-20240601203519099

3.修改配置

image-20240601203941017

image-20240601204011402

4.远程调用

image-20240601204203226

image-20240601204247239

5.测试

image-20240601211235106

image-20240601213002348

如果服务挂不上去可能是因为alibab版本问题导致的,更改版本为适配的版本就可以了

4.Nacos的负载均衡

开启Nacos的负载均衡策略

#开启nacos的负载均衡策略
spring.cloud.loadbalancer.nacos.enabled=truespring:cloud:loadbalancer:nacos:enabled: true

image-20240601214310720

4.1同级群优先访问

image-20240601231233209

同机房优先访问

image-20240601231420451

例如这里设置机房就为北京机房,我们服务会优先访问北京机房

1.服务上线/下线

2.服务配置权重(非严格)

3.同集群优先访问

上述2,3需要开启Nacos负载均衡才有效果

5.Nacos 健康检查

Nacos 健康检查机制

客户端主动上报机制:

  • 客户端通过心跳上报方式告知服务端(nacos注册中心)健康状态,默认心跳间隔5秒
  • nacos会在超过15秒未收到心跳后将实例设置为不健康状态,超过30秒将实例删除

临时实例

服务器端反向探测机制:

  • nacos主动探知客户端健康状态,默认间隔为20秒
  • 健康检查失败后实例会被标记为不健康,不会被立即删除.

非临时实例,永久实例

image-20240601233309603

服务节点,默认为临时实例
临时实例采用客户端主动上报
非临时实例采用的是服务器反向探测

Nacos会记录每一个实例的IP,端口号以及实例类型
不允许 临时实例改为非临时实例,非临时实例也不允许改为临时实例
如果需要修改,需要删除掉nacos 的相关数据信息

1.停止nacos
2.删除数据信息 data\protocol\raft
3.重启nacos

image-20240601233839509

可以看到虽然这里的临时实例和健康状态都为false,但是他没有下线

6.Nacos 环境隔离

1.开发环境

2.测试环境

3.预发布环境

4.发布环境

预发布环境 和 发布环境 都是正式环境,通常情况下,配置,数据库都是一样的。区别就是:预发布环境不对外,发布环境对外,外面的用户可以访问到

image-20240601234710722

在新增完分组空间后,我们去配制管理里面查看一下

image-20240601234800610

发现我们这里确实新增了我们刚添加的分组,之后配置管理的时候分类管理便成功了。

7.Nacos 配置中心

7.1为什么需要配置中心

当前项目的配置都在代码中,会存在以下问题:

  1. 配置文件修改时,服务需要重新部署,微服务架构中,一个服务可能有成百个实例,挨个部署比较麻烦,且容易出错.
  2. 多人开发时,配置文件可能需要经常修改,使用同一个配置文件容易冲突

配置中心就是对这些配置项进行统一管理.通过配置中心,可以集中查看,修改和删除配置,无需再逐个修改配置文件.提高效率的同时,也降低了出错的风险.

image-20240601235745316

7.2 Nacos配置中心使用

1.添加配置

image-20240604173907519

image-20240604173934114

2.引入依赖

image-20240604174049732

3.修改配置文件

image-20240604174359675

编写程序,运行使用

image-20240604190048738

注:这里的@RefreshScope作用是让我们的程序能实时更新

image-20240604190835656

7.3 Data id

image-20240604191300165

优先级排序:

image-20240604192119549

7.4Nacos 上Linux部署服务

1.修改相关配置,并进行本地测试

2.打包,上传到服务器

3.启动Nacos

4.测试

7.5 Nacos 和 Eureka的区别

共同点:

  • 都支持服务注册和服务拉取

区别:

1.功能

Nacos除了服务发现和注册之外,还提供了配置中心,流量管理和DNS服务等功能.

2.CAP理论

Eureka遵循AP原则,Nacos可以切换AP和CP模式,默认AP.

Nacos 根据配置识别CP或者AP模式.如果注册Nacos的Client的节点是临时节点,那么Nacos对这个
Client节点的效果就是AP,反之是CP.AP和CP可以同时混合存在:

3.服务发现

Eureka:基于拉模式.Eureka Client会定期从Server拉取服务信息,有缓存,默认每30秒拉取一次.

Nacos:基于推送模式.服务列表有变化时实时推送给订阅者,服务端和客户端保持心跳连接

感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!😘

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

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

相关文章

XSS LABS - Level 13 过关思路

关注这个靶场的其他相关笔记:XSS - LABS —— 靶场笔记合集-CSDN博客 0x01:过关流程 进入靶场,老样子,右击,查看页面源码,找找不同: 可以看到,本关又多了一个新字段 t_cook&#xf…

#C++ 笔记二

四、运算符重载 1.友元 1.1 概念 类实现了数据的隐藏和封装,类的数据成员一般定义为私有成员,仅能通过类的公有成员函数才能进行读写。 如果数据成员定义成公共的,则又破坏了封装性。但是在某些情况下,需要频繁的读写数据成员…

【Transformer】基本概述

文章目录 提出背景核心思想—注意力机制流程解析参考资料 提出背景 在Transformer模型出现之前,循环神经网络(RNN)及其变体,如长短期记忆网络(LSTM)和门控循环单元(GRU),…

Ethercat设备数据 转IEC61850项目案例

目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 5 设置网关采集ETHERCAT数据 5 6 用IEC61850协议转发数据 7 7 网关使用多个逻辑设备和逻辑节点的方法 9 8 安装NPCAP 10 9 案例总结 11 1 案例说明 设置网关采集EtherCAT设备数据把采集的数据转成IEC61850协议转发给其…

Ollydbg提示:xxxxxx可能不是一个 32 位 PE 文件,无论如何都尝试载入吗?

原标题:OD提示C:\Users\XuanRan\Desktop\xxxx.exe’可能不是一个个 32 位 PE 文件,无论如何都尝试载入吗? 它的意思就是告诉你,OD现在只能用于32位软件。 如果要调试64位程序,去使用x64dbg x64dbg下载链接: https://github.com…

记一次ssh伪终端修改为shell

问题 用户ssh进行连接后,默认为伪终端。 解决办法,可以先拿到终端shell,查看用户是否为/bin/bash: 不是/bin/bash,使用如下命令进行修改: chsh -s /bin/bash rootservice sshd restart

【WPF】WPF学习之【二】布局学习

WPF布局学习 常用布局Grid网格布局StackPanel 布局CanvasDockPanel布局WrapPanel布局 常用布局 1、StackPanel: 学习如何使用StackPanel进行垂直和水平布局。 2、Grid: 掌握Grid的网格布局技术。 3、Canvas: 了解Canvas的绝对定位布局。 4、DockPanel: 学习DockPanel的停靠…

计算机毕业设计选题推荐-茶园茶农文化交流平台-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

【Redis】Redis 主从复制

文章目录 1 前言2 主从模式介绍3 配置 Redis 主从结构3.1 建立复制3.2 断开复制3.3 其他特性3.4 拓扑结构 4 Redis 主从复制原理4.1 复制过程4.2 PSYNC 数据同步4.3 PSYNC 运行流程 5 主从复制流程5.1 全量复制流程5.2 部分复制流程5.3 实时复制流程 1 前言 分布式系统中存在一…

电路基础 ---- 负反馈放大电路的方框图分析法

1 方框图分析法 方框图如下: 图中 A u o A_{uo} Auo​是一个电压输入的放大器的放大倍数,称为开环放大倍数。 F F F为反馈系数,是一个矢量,是指输出信号 x o x_{o} xo​的多少倍回送到放大器的输入端。 M M M为衰减系数&#x…

新生开学分班用这个查询系统,1分钟即可制作同款系统

新学期已经开始了,老师们又要开始头疼分班的事情了。但别担心,现在有个超好用的查询系统,让分班变得简单又快速! 在以前分班可麻烦了,老师们得一个个核对学生信息,还得通知家长。但现在,有了这…

VSCode + Git的常规操作(一)【描述详细直白,小白一学就会】

目录 一、文章简介 二、具体操作流程 1、操作前提 2、设置用户名、用户邮箱 (1)打开命令框 (2)配置用户名 (3)配置用户名邮箱 (4)查看配置 3、SSH密钥对的介绍、生成及配置…

软考计算机软件基础知识总结

目录 前言 计算机软件概述 操作系统 数据库 文件系统 网络协议 中间件 软件构件 应用软件 最后 前言 早期的计算机软件和计算机程序 (Computer Program) 的概念几乎不加区别,后来计算机 软件的概念在计算机程序的基础上得到了延伸。计算机软件是指计算机系…

HTTP 状态码:解析与处理的全面指南

一、HTTP 状态码概述 HTTP 状态码(HTTP Status Code)是用以表示网页服务器 HTTP 响应状态的 3 位数字代码。它在客户端与服务器之间的通信中起着至关重要的作用。 其主要作用在于向客户端清晰准确地传达服务器对请求的处理结果。例如,当客户…

ARCGIS 纸质小班XY坐标转电子要素面(2)

本章用于说明未知坐标系情况下如何正确将XY转要素面 背景说明 现有资料:清除大概位置,纸质小班图,图上有横纵坐标,并已知小班XY拐点坐标,但未知坐标系。需要上图 具体操作 大部分操作同这边文章ARCGIS 纸质小班XY…

SprinBoot+Vue餐厅点餐系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质…

使用docker容器部署考试系统

8.30 回顾 1、使用harbor仓库 python --version yum -y update yum -y install python2-pip 部署考试系统 使用docker部署project-exam-system 1、在一台主机内,实现容器的编排看,发布考试系统 2、环境准备 docker docker-compose docker脚本 …

C语言实现SHA-256算法校验文件(win32-API)

一、前言 在数字化时代,信息安全与数据完整性成为了不可忽视的关键议题。在众多保障数据完整性的方法中,散列函数扮演着至关重要的角色。SHA-256(Secure Hash Algorithm 256)作为一种先进的散列算法,以其高度的安全性…

VScode + Python 下载及安装|python环境配置|中文乱码解决

1,下载安装VScode 直接点击2024.9https://vscode.download.prss.microsoft.com/dbazure/download/stable/fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/VSCodeUserSetup-x64-1.92.2.exe 或者百度搜索VScode,可下载安装最新版 点击后等一下,就…

逆向工程核心原理 Chapter 21 | Windows消息钩取

开始DLL注入章节的学习。 知识点学习 消息钩子 这里主要是要弄明白Windows GUI程序的工作模式/流程。 GUI以事件驱动方式工作。核心概念:message queue 最具代表性的:MS提供的spy SetWindowsHookEX() SetWindowsHookExA 函数 (winuser.h) - Win32 a…