【SpringCloud-10】SCA-nacos
前言:
前面介绍的springcloud,可以看做第一代,称为:SCN(spring cloud Netflix); 接下来介绍的是第二代:SCA(spring cloud alibaba); SCA主要有以下组件:
Nacos:服务注册中心 + 配置中心 (第一代中的 eureka和config)
Sentinel:服务熔断、限流(第一代中的hystrix)
Dubbo RPC/LB: 服务调用(第一代中的feign)
另外,还有一个分布式事务的解决方案:Seata (放到后面的数据库中介绍)
这一章,主要介绍nacos的使用。
Nacos:
Nacos = Eureka + Config + Bus,在官网下载启动即可,不需要像eureka要自己搭建。
功能特性:
- 服务发现与健康检查
- 动态配置管理
- 动态DNS服务
- 服务和元数据管理(管理平台的⻆度,nacos也有⼀个ui⻚⾯,可以看到注册的服务及其实例信息(元数据信息)等),动态的服务权重调整、动态服务优雅下线
下载地址:https://github.com/alibaba/Nacos
启动:linux/mac:sh startup.sh -m standalone
访问:ip:8848/nacos/#/login (默认账号密码都是nacos)
一:服务注册中心 :
基本使用:
在项目中引入依赖:
pom中:
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.1.0.RELEASE</version><type>pom</type><scope>import</scope></dependency>
微服务中使其成为nacos的客户端:
<!--nacos service discovery client依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
yml配置nacos格式:spring:application:name: lagou-service-autodelivercloud:nacos:discovery:server-addr: 127.0.0.1:8848
启动之后,就可以在后台看见注册的服务了:
保护阈值:可以设置为 0-1 之间的浮点数,它其实是⼀个⽐例值(当前服务健康实例数/ 当前服务总实例数)。 当阈值被触发时(状态为true),会把所有实例(包括不健康的)都提供出去,防止雪崩。
负载均衡:
Nacos客户端引⼊的时候,会关联引⼊Ribbon的依赖包。 就像使⽤OpenFiegn的时
候也会引⼊ Ribbon 的依赖, Ribbon 包括 Hystrix 都按原来⽅式进⾏配置即可。
领域模型:
Namespace命名空间、Group分组、集群这些都是为了进⾏归类管理,进行隔离。
- Namespace:命名空间,对不同的环境进⾏隔离,⽐如隔离开发环境、测试环境和⽣产环境
- Group:分组,将若⼲个服务归为⼀组,比如一个项目下的所有服务。
- Service:某⼀个服务,⽐如用户中心。
- DataId:服务中的具体配置文件。
数据持久化:
默认使⽤嵌⼊式数据库进⾏数据存储,⽀持改为外部Mysql存储。
- 新建数据库 nacos_confifig,数据库初始化脚本⽂件 ${nacoshome}/conf/nacos-mysql.sql
- 修改${nacoshome}/conf/application.properties,增加Mysql数据源配置
spring.datasource.platform = mysql### Count of DB:db.num = 1### Connect URL of DB:db.url.0 = jdbc : mysql : //127.0.0.1 : 3306/nacos_config?characterEncoding = utf8&connectTimeout = 1000&socketTimeout = 3000&autoReconnect = truedb.user = rootdb.password = 123456
二:服务配置中心:
之前使用config + bus,现在只需在nacos server端配置即可。
1、在server端新建配置:
2、微服务添加依赖,使其成为Nacos Config Client,能够从Nacos Server中获取到配置信息
<!--nacos config client 依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>
3、如何锁定 Nacos Server 中的配置⽂件(dataId):
通过 Namespace + Group + dataId 来锁定配置⽂件, Namespace 不指定就默认public, Group 不指定就默认 DEFAULT_GROUP。dataId 的完整格式: ${prefix} - ${spring.profile.active} . ${file-extension},:prefix:默认为spring.application.name的值,也就是项目名。 也可以通过cloud的prefix属性配置。spring.profile.active:如dev,testfile-extension:yml或propertiescloud:nacos:discovery:# 集群中各节点信息都配置在这里(域名-VIP-绑定映射到各个实例的地址信息)server-addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850# nacos config 配置config:server-addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850# 锁定server端的配置文件(读取它的配置项)namespace: 07137f0a-bf66-424b-b910-20ece612395a # 命名空间idgroup: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置file-extension: yaml #默认properties
4、开启注解:@RefreshScope
5、扩展多个dataId:
假如nacos中不只一个yml配置文件,那就需要进行扩展配置了。使用ext-config属性:
cloud:nacos:discovery:# 集群中各节点信息都配置在这里(域名-VIP-绑定映射到各个实例的地址信息)server-addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850# nacos config 配置config:server-addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850# 锁定server端的配置文件(读取它的配置项)namespace: 07137f0a-bf66-424b-b910-20ece612395a # 命名空间idgroup: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置file-extension: yaml #默认properties# 根据规则拼接出来的dataId效果:lagou-service-resume.yamlext-config[0]:data-id: abc.yamlgroup: DEFAULT_GROUPrefresh: true #开启扩展dataId的动态刷新ext-config[1]:data-id: def.yamlgroup: DEFAULT_GROUPrefresh: true #开启扩展dataId的动态刷新
如果多个yml中有相同的配置,dataId的优先级为:默认>扩展的(扩展:ext-config[n], n越大优先级越高)
相关文章:

【SpringCloud-10】SCA-nacos
前言: 前面介绍的springcloud,可以看做第一代,称为:SCN(spring cloud Netflix); 接下来介绍的是第二代:SCA(spring cloud alibaba); SCA主要有以下组件&#…...

卡顿分析与布局优化
卡顿分析与布局优化 大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能。Android系统每隔大概16.6ms发出VSYNC信 号,触发对UI进行渲染,如果每次渲染都成功,这样就能够达到流畅的画面所需要的60fps,为了能够实现60fp…...

【Vivado HLS Bug】Ubuntu环境下Vivado HLS导出IP报错:HLS ERROR: [IMPL 213-28]
Export IP Invalid Argument / Revision Number Overflow Issue (Y2K22) (xilinx.com)一.问题描述: 在Ubuntu20.04环境中使用Vivado HLS导出IP时报错:HLS ERROR: [IMPL 213-28] 二.解决方法: 1.从如下链接中下载官方补丁Export IP Invalid…...

2022最新版-李宏毅机器学习深度学习课程-P14 批次(batch)与动量(momentum)
一、batch 回顾epoch、shuffle batch size大还是小?都有好处 大batchsize的好处 由于GPU有并行计算的能力,左边并不一定用时更长 反而是,batch size小的时候,要跑完一个epoch所用的update时间更长,所以时间方面的比较…...

谜题(Puzzle, ACM/ICPC World Finals 1993, UVa227)rust解法
有一个5*5的网格,其中恰好有一个格子是空的,其他格子各有一个字母。一共有4种指令:A, B, L, R,分别表示把空格上、下、左、右的相邻字母移到空格中。输入初始网格和指令序列(以数字0结束),输出指…...
acwing算法基础之数据结构--双链表
目录 1 知识点2 模板 1 知识点 一般的结构体写法为, struct BiListNode {int val;BiListNode *left;BiListNode *right; };但我们不用这个,而用数组模拟双链表,此时,用编号为0的结点表示头结点,用编号为1的结点表示尾…...

将中文名格式化输出为英文名
要求: 编写Java程序,输入样式为:Zhong wen ming的人名,以 Ming,Zhong.W 的形式打印出来。其中.W是中间单词的首字母;例如输入”Willian Jefferson Clinton“,输出形式为:Clinton,Willian.J public static …...

设计模式_迭代器模式
迭代器模式 介绍 设计模式定义案例迭代器模式行为型:关注对象与行为的分离 提供了一种统一的方式来访问多个不同的集合两个集合:使用了不同的数据存储方式 学生 和 警察 查询显示出集合的内容 ,使用相同的代码 问题堆积在哪里解决办法不同…...

【数据结构】:栈的实现
1 栈 1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则 压栈…...
微前端一:技术选型
微前端是一种多个团队通过独立发布功能的方式来共同构建现代化 web 应用的技术手段及方法策略。 微前端架构具备以下几个核心价值: 1、技术栈无关 主框架不限制接入应用的技术栈,微应用具备完全自主权 2、独立开发、独立部署 微应用仓库独立࿰…...

FPGA project : flash_continue_write
本实验学习了通过spi通信协议,驱动flash;完成连续写操作。 连续写: 本质上还是页编程指令,两种连续写的方式: 1,每次只写1byte的数据。 2,每次写满1页数据,计算剩余数据够不够写…...

论文阅读:Rethinking Range View Representation for LiDAR Segmentation
来源ICCV2023 0、摘要 LiDAR分割对于自动驾驶感知至关重要。最近的趋势有利于基于点或体素的方法,因为它们通常产生比传统的距离视图表示更好的性能。在这项工作中,我们揭示了建立强大的距离视图模型的几个关键因素。我们观察到,“多对一”…...
本地配置免费的https咋做?
大家好这里是tony4geek。 今天和公司的小伙伴对接项目,因为涉及到https的权限调用。所以在服务器本地localhost 要配置https用来测试 。现在把过程中遇到的问题记录下来。 • 因为是测试用所以生成https的证书用免费的就可以了。 openssl req -x509 -nodes -days …...

微信小程序框架---详细教程
🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《Spring与Mybatis集成整合》《Vue.js使用》 ⛺️ 越努力 ,越幸运。 目录 1.框架 1.1响应的数据绑定 1.2.页面管理 1.3.基础组件 1.4.丰富的 API 2.视图层 View 2.1.介绍 …...

【LeetCode刷题(数组and排序)】:存在重复元素
给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 示例 1: 输入:nums [1,2,3,1] 输出:true 示例 2: 输入:nums [1,2…...

半导体产业链解析:晶圆厂、无晶圆厂与代工厂的比较与作用
半导体产业一直是全球科技发展的关键驱动力,在半导体产业中,晶圆厂、无晶圆厂公司和代工厂是三个重要的参与者。它们在产业环节、生产方式、经营模式和市场竞争等方面存在一些显著差异。本文将探讨半导体晶圆厂、无晶圆厂公司和代工厂之间的区别…...

Apipost一键压测已支持导入CSV文件
最近更新中Apipost对UI页面进行了一些调整,另外一键压测功能支持参数化!本篇文章将详细介绍这些改动! API调试页面的细节改动 在请求区填入请求参数或脚本时会有相应的标识 如在Query中填入多个参数时上方会展示数量 在预、后执行脚本中写…...

RabbitMQ的5种模式——再探RabbitMQ的模式,简单、工作,发布订阅(广播),路由、主题 页面分析
前言 RabbitMQ作为一款常用的消息中间件,在微服务项目中得到大量应用,其本身是微服务中的重点和难点,有不少概念我自己的也是一知半解,本系列博客尝试结合实际应用场景阐述RabbitMQ的应用,分析其为什么使用࿰…...

初识华为云数据库GaussDB for openGauss
01 前言 GaussDB是华为自主创新研发的分布式关系型数据库。该产品具备企业级复杂事务混合负载能力,同时支持分布式事务,同城跨AZ部署,数据0丢失,支持1000的扩展能力,PB级海量存储。同时拥有云上高可用,高可…...

深圳寄包裹到德国
深圳,作为全球最发达的城市之一,以其高效的物流服务在全球范围内享有盛名。如果你正在寻找一种方式将包裹从深圳寄送到德国,那么本文将为你提供详细的步骤和建议。 第一步:了解国际邮寄的基本信息 首先,你需要了解包裹…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...

群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...

HTTPS证书一年多少钱?
HTTPS证书作为保障网站数据传输安全的重要工具,成为众多网站运营者的必备选择。然而,面对市场上种类繁多的HTTPS证书,其一年费用究竟是多少,又受哪些因素影响呢? 首先,HTTPS证书通常在PinTrust这样的专业平…...
41道Django高频题整理(附答案背诵版)
解释一下 Django 和 Tornado 的关系? Django和Tornado都是Python的web框架,但它们的设计哲学和应用场景有所不同。 Django是一个高级的Python Web框架,鼓励快速开发和干净、实用的设计。它遵循MVC设计,并强调代码复用。Django有…...

Redis上篇--知识点总结
Redis上篇–解析 本文大部分知识整理自网上,在正文结束后都会附上参考地址。如果想要深入或者详细学习可以通过文末链接跳转学习。 1. 基本介绍 Redis 是一个开源的、高性能的 内存键值数据库,Redis 的键值对中的 key 就是字符串对象,而 val…...