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

【微服务】五. Nacos服务注册

Nacos服务注册

  • 5.1 Nacos服务分级存储模型
    • Nacos服务分级存储模型:
    • 服务集群属性:
    • 总结:
  • 5.2 根据集群负载均衡
    • 总结
  • 5.3 Nacos服务实例的权重设置
    • 总结:
  • 5.6 环境隔离namespace
    • 总结
  • 5.7 Nacos和Eureka的对比
    • 总结

5.1 Nacos服务分级存储模型

Nacos服务分级存储模型:

nacos服务分级存储模型
服务跨集群调用问题:
服务调用尽可能选择本地集群的服务,跨集群调用延迟较高。
本地集群不可访问时,再去访问其他集群。
nacos服务跨集群调用问题

服务集群属性:

  1. 修改application.yml,添加如下内容
spring:cloud:nacos:server-addr: localhost:8848  # nacos服务端地址discovery:cluster-name: HZ  # 配置集群名称,也就是机房位置:例如杭州 HZ
  1. 在nacos控制台可以看到集群变化

总结:

  1. Nacos服务分级存储模型
    一级是服务,例如userservice
    二级是集群,例如杭州或上海
    三级是实例,例如杭州机房的某台部署了userservice的服务器
  2. 如何设置实例的集群属性
    修改application.yml文件,添加spring.cloud.nacos.discovery.cluster-name属性即可

5.2 根据集群负载均衡

实现orderservice优先选择本地集群中的userservice

  1. 修改order-service中的application.yml,设置集群为HZ:
spring:cloud:nacos:service-addr: localhost:8848discovery:cluster-name: HZ
  1. 然后在order-service中设置负载均衡的Rule为NacosRule,这个规则优先会寻找与自己同集群的服务:
userservice:ribbon:NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule  # 负载均衡规则
  1. 注意将user-service的权重都设置为1

Nacos的访问特点:优先访问本地集群,然后随机访问本地集群中的服务。本地没有就跨集群访问,跨集群访问会出现警告:
nacos跨集群访问警告

总结

NacosRule负载均衡策略
优先选择同集群服务实例列表
本地集群找不到提供者,才去其他集群寻找,并且会报警告
确定了可用实例列表后,再采用随机负载均衡挑选实例

5.3 Nacos服务实例的权重设置

根据权重负载均衡
实际部署中会出现这样的场景:
服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求。

Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高
Nacos配置权重
权重设置为0时,服务就不会被访问

总结:

实例的权重控制:
Nacos控制台可以设置实例的权重值,0~1之间。
同集群内的多个实例,权重越高被访问的频率越高
权重设置为0则完全不会被访问

5.6 环境隔离namespace

Nacos中服务存储和数据存储的最外层都是一个名为namespace的东西,用来做最外层隔离
环境隔离namespace
在设置命名空间时,服务都在public命名空间中

  1. 在Nacos控制台中可以创建namespace,用来隔离不同环境
    nacos创建namespace1
  2. 然后填写一个新的命名空间信息:
    Nacos创建namespace2
  3. 保存后会在控制台看到这个命名空间的id
    Nacos创建namespace3
  4. 修改order-service的application.yml,添加namespace
    Nacos创建namespace4
  5. 重启order-service后,再来查看控制台
  6. 此时访问order-service,因为namespace不同,会导致找不到userservice,控制台会报错
    Nacos创建namespace

总结

Nacos环境隔离
namespace用来做环境隔离
每个namespace都有唯一的id
不同namespace下的服务不可见

5.7 Nacos和Eureka的对比

nacos注册中心细节分析
Nacos注册中心细节分析
默认情况下,所有的实例都是临时实例
如果临时实例服务到时间没有发送心跳,nacos就会把临时服务从列表中剔除。
nacos不会把非临时实例从列表中剔除,只会标注实例不健康了,等着服务恢复。

临时实例和非临时实例
服务注册到Nacos时,可以选择注册为临时或非临时实例,通过下面的配置来设置:

spring:cloud:nacos:discovery:ephemeral: false  # 设置为非临时实例

临时实例宕机时,会从nacos的服务列表中剔除,而非临时实例则不会

总结

  1. Nacos和eureka的共同点:
    都支持服务注册和服务拉取
    都支持服务提供者心跳方式做健康检测
  2. Nacos和Eureka的区别:
    Nacos支持服务端主动检测提供者的状态:临时实例采用心跳模式,非临时实例采用主动检测模式。
    临时实例心跳不正常会被剔除,非临时实例则不会被剔除。
    Nacos支持服务列表变更的消息推送模式,服务列表更新更及时。
    Nacos集群默认采取AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP模式。

相关文章:

【微服务】五. Nacos服务注册

Nacos服务注册 5.1 Nacos服务分级存储模型Nacos服务分级存储模型:服务集群属性:总结: 5.2 根据集群负载均衡总结 5.3 Nacos服务实例的权重设置总结: 5.6 环境隔离namespace总结 5.7 Nacos和Eureka的对比总结 5.1 Nacos服务分级存储…...

Lnmp架构-Redis

网站:www.redis.cn redis 部署 make的时候需要gcc和make 如果在纯净的环境下需要执行此命令 [rootserver3 redis-6.2.4]# yum install make gcc -y 注释一下这几行 vim /etc/redis/6739.conf 2.Redis主从复制 设置 11 是master 12 13 是slave 在12 上 其他节…...

Python 二进制数据处理与转换

不得不说,Python能火是有原因的,物联网开发中常用的数据处理方式,Python都有内置的函数或方法,相当方便,官方文档见二进制序列类型,下面是一些示例代码 string Hello World! # 字符串转二进制数据 data …...

【LeetCode】297.二叉树的序列化与反序列化

题目 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化…...

Java HashSet

HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。 HashSet 允许有 null 值。 HashSet 是无序的,即不会记录插入的顺序。 HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必…...

在iPhone上构建自定义数据采集完整指南

在iPhone上构建自定义数据采集工具可以帮助我们更好地满足特定需求,提高数据采集的灵活性和准确性。本文将为您提供一份完整的指南和示例代码,教您如何在iPhone上构建自定义数据采集工具。 自定义数据采集工具的核心组件 a、数据模型 数据模型是数据采…...

Android MediaRecorder录音

1. 简介 在android中录制音频有两种方式,MediaRecorder和AudioRecord。两者的区别如下: MediaRecorder 简单方便,不需要理会中间录制过程,结束录制后可以直接得到音频文件进行播放;录制的音频文件是经过压缩的&#…...

软件提示vcruntime140_1.dll丢失的解决方法,以及丢失的原因总结

在运行某些程序时,可能会出现“vcruntime140_1.dll 丢失”的错误提示。这是因为 vcruntime140_1.dll 是 Visual C Redistributable 的一部分,它通常被安装在 Windows 操作系统上。如果该文件丢失或无法找到,可能会导致程序无法正常运行。在我…...

Datax抽取mysql的bit类型数据

背景:使用datax抽取mysql的一张表,里面有两个bit类型的字段,抽取出来显示如下: 需要在抽取reader里面进行处理配置 最终生成的datax的json文件reader的配置会转换为具体的数值 最终查询效果:...

git 后悔药

前言 自上而下,撤销可以分为从远程库撤销,从本地库撤销,从暂存库撤销。 例子:代码已经提交了三个记录到远程库,分别对应了记录1,内容1,记录2,内容2,记录3,内…...

vue-cli搭建一个新项目及基础配置

vue-cli搭建一个新项目及基础配置 一、安装步骤二、main.js配置三、router下的index.js 一、安装步骤 1.安装node环境:下载地址:Node.js 2.安装脚手架:npm install -g vue/cli 3.创建vue项目:vue create 项目名 4.进入项目&…...

【C++】 C++11(右值引用,移动语义,bind,包装器,lambda,线程库)

文章目录 1. C11简介2. 统一的列表初始化2.1 {}初始化2.2 std::initializer_list 3. 声明3.1 auto3.2 decltype3.3 auto与decltype区别3.4 nullptr 4. 右值引用和移动语义4.1 左值引用和右值引用4.2 左值引用与右值引用比较4.3 右值引用使用场景和意义4.…...

附录1-爬虫的一些技巧

目录 1 寻找url与显示内容的关系 2 修改请求头 3 局部刷新 4 阅读返回信息 5 多尝试页面其他的使用方式 6 尝试不同类型参数 7 表单类型的post多用data发,接口类型的post多用json发 8 消除degger 9 你在浏览器上看到的html与你下载下来的html不一…...

【android12-linux-5.1】【ST芯片】【RK3588】【LSM6DSR】HAL移植

一、环境介绍 RK3588主板搭载Android12操作系统,内核是Linux5.10,使用ST的六轴传感器LSM6DSR芯片。 二、芯片介绍 LSM6DSR是一款加速度和角速度(陀螺仪)六轴传感器,还内置了一个温度传感器。该芯片可以选择I2C,SPI通讯,还有可编程终端,可以后置摄像头等设备,功能是很…...

DragGAN应运而生,未来在4G视频上都可能利用拖拽式编辑

原创 | 文 BFT机器人 2023年8月14日-15日,第七届GAIR全球人工智能与机器人大会在新加坡乌节大酒店成功举办。 在「AIGC 和生成式内容」分论坛上,南洋理工大学科学与工程学院助理教授潘新钢以《Interacitve Point-Dragging Manipulation of Visual Cont…...

【C++技能树】多态解析

Halo,这里是Ppeua。平时主要更新C,数据结构算法,Linux与ROS…感兴趣就关注我bua! 文章目录 0.多态的概念0.1 多态的定义 1. 重写2.Final与Override3.抽象类4.多态中的内存分布.4.1虚表存在哪里? 5.多态调用原理5.1 动态绑定与静…...

【爬虫笔记】Python爬虫简单运用爬取代理IP

一、前言 近些年来,网络上的爬虫越来越多,很多网站都针对爬虫进行了限制,封禁了一些不规则的请求。为了实现正常的网络爬虫任务,爬虫常用代理IP来隐藏自己的真实IP,避免被服务器封禁。本文将介绍如何使用Python爬虫来…...

IP协议-NAT机制(理解网络结构的关键要点)

前言 我们现在使用得最多的IP协议版本是IPv4,IPv4是4个字节,32位,也就是说我们的IP地址最多就只有2^32(42亿)个,在日常生活中,我们需要联网的设备都需要有IP地址才能进行通讯,很明显…...

Python UI自动化 —— 关键字+excel表格数据驱动

步骤: 1. 对selenium进行二次封装,创建关键字的库 2. 准备一个表格文件来写入所有测试用例步骤 3. 对表格内容进行读取,使用映射关系来对用例进行调用执行 4. 执行用例 1. 对selenium进行二次封装,创建关键字的库 from time imp…...

AI:06-基于OpenCV的二维码识别技术的研究

二维码作为一种广泛应用于信息传递和识别的技术,具有识别速度快、容错率高等优点。本文探讨如何利用OpenCV库实现二维码的快速、准确识别,通过多处代码实例展示技术深度。 二维码作为一种矩阵型的条码,广泛应用于各个领域,如商品追溯、移动支付、活动签到等。二维码的快速…...

Spring MVC Http Event Stream

什么是 Http Event Stream Event Stream 技术是一种实现服务器推送事件的方法,它通过在一个持续的 HTTP 连接上发送事件流来实现推送。具体来说,服务器发送一些事件到客户端,并将这些事件封装成一些指定格式的文本流。客户端通过监听这个流&…...

2023年亲测有效----树莓派启动时自动邮件上报ip

2023年亲测 树莓派启动时自动邮件上报ip 首先开启qq邮箱smtp服务shell文件内容启动自动执行python文件注意事项 首先开启qq邮箱smtp服务 然后点击开启就会有授权码 shell文件内容 在自己的shell里,运行echo $PATH,把内容覆盖下面的path。 功能 作用就…...

Direct3D颜色

在Direct3D中颜色用RGB三元组来表示,RGB数据可用俩种不同的结构来保存,第一种是D3DCOLOR,它实际上与DWORD类型完全相同,共有32位,D3DCOLOR类型种的各位被分成四个8位项,每项存储了一种颜色分量的亮度值。 由…...

LLM - 大模型速递 Baichuan2 快速入门

目录​​​​​​​ 一.引言 二.模型探索 1.模型下载 2.模型结构 ◆ Baichuan-1-13B 结构 ◆ Baichuan-2-13B 结构 3.模型测试 ◆ Baichuan-2-13B Chat 推理 ◆ Baichuan-2-13B 显存 4.模型量化 ◆ 在线量化 ◆ 离线量化 ◆ 量化效果 5.模型迁移 三.模型微调 …...

DB2和MYSQL的LOAD原理和比较测试

DB2 load的过程: (1)、装入阶段 装入阶段将源数据解析成物理数据页的格式,直接装入到数据页中。必要时还收集索引键和表统计信息。 (2)、构建索引阶段 根据在装入阶段收集的索引键创建表索引。 &#xff08…...

redisson常用api

redisson提供了很多对象类型的api&#xff0c;下面介绍下一些常用的对象api。 RBucket 可操作任何对象的api&#xff0c;前提是要确定好泛型&#xff0c;方法比较少。大小限制为512Mb。 RBucket<AnyObject> bucket redisson.getBucket("anyObject");bucket…...

MySQL——数据库以及数据表的创建

创建数据库 回到刚才创建数据库的问题&#xff0c;我们在创建数据库的时候可以通过添加一个参数&#xff0c;这个参数的意义在于当我们创建的数据库已经存在的时候则不会创建&#xff0c;也不会报错&#xff0c;如果不使用这个参数&#xff0c;则我们在重复创建一个已经存在的…...

智能配电房管理

智能配电房管理依托电易云-智慧电力物联网&#xff0c;利用先进技术手段&#xff0c;对配电房进行智能化、自动化的管理&#xff0c;以提高配电房的安全性、可靠性和效率。 智能配电房管理包括&#xff1a; 1.实时监测&#xff1a;通过传感器、监控设备等手段&#xff0c;对配…...

php如何解决高并发的问题?

在PHP中解决高并发问题可以采取以下几种策略&#xff1a; 使用缓存&#xff1a;通过使用缓存技术&#xff0c;可以将经常访问的数据存储在内存中&#xff0c;减轻数据库或其他资源的压力。常见的缓存技术包括Memcached和Redis。PHP提供了与这些缓存服务器进行交互的扩展和库。 …...

Linux操作系统

线程竞争 那么初始化一个整型为 0&#xff0c;使用一万个线程&#xff0c;每个线程都对该整型加 1&#xff0c;最后结果不一定会是 10000。这是因为整型变量的赋值操作不是原子操作&#xff0c;也就是说它不是一个不可分割的操作&#xff0c;而是由多条指令组成的。例如&#…...

软件下载网站模板/南山网站seo

本人机器是windows xpubuntu10.10&#xff0c;原来才装ubuntu时纯粹是为了玩玩&#xff0c;没打算长用&#xff0c;就只分了10G的空间给它&#xff0c;经过一段时间的使用&#xff0c;觉得ubuntu相当好用&#xff0c;许多软件的反应速度都比windows快&#xff0c;(可能是我的xp…...

网站首页代码怎么写/网站外链优化方法

概述 1、pageContext即页面上下文对象&#xff0c;表示当前页面运行环境&#xff0c;用以获取当前JSP页面的相关信息 2、pageContext对象作用范围为当前JSP页面 3、pageContext对象类型为javax.servlet.jsp.PageContext,pageContext对象可以访问当前JSP页面所有的内置对象&am…...

天堂网长尾关键词挖掘网站/全球最大的中文搜索引擎

1、安装 Yum install -y freeradius freeradius-mysql freeradius-utils 2、配置 1&#xff09;修改 clients.conf # vi /usr/local/etc/raddb/clients.conf 在最后增加如下几行&#xff1a; client 172.18.5.88 { 增加认证体&#xff0c;填写OMA的ip地址 s…...

北京网站优化服务/杭州优化公司哪家好

随着互联网的发展&#xff0c;人们对页面的要求越来越高&#xff0c;不只是功能好用&#xff0c;而且还要颜值高。前端开发人员对于浏览器的滚动条并不陌生&#xff0c;当自带的一些滚动条无法满足我们的审美时&#xff0c;你知道如何用CSS修改浏览器滚动条的样式吗&#xff1f…...

网站做推广需要什么条件/扶贫832网络销售平台

我的移动开发春季历程 没有稳定的工作&#xff0c;只有稳定的能力。 春天&#xff0c;又到了万物复苏的季节&#xff0c;在程序猿这个行当里&#xff0c;作为 Android 开发出生的我&#xff0c;在经历了5年的脱发生涯后&#xff0c;现在更多的是称呼自己为移动开发攻城狮。 学…...

买网站账号做推广/百度识图网页入口

路由器&#xff1a;2600/2610/2620、3620/3640、7200、7600 交换机&#xff1a;2950/2960、3550/3560转载于:https://blog.51cto.com/jackcyc/748923...