参考安装指南安装

1.服务注册

2. 
3. 
Nacos 
loud -demo*IG spring-cloud : 
< dependency > 
< artifac tId> spring - c d- alibaba-dependencies< / artifact 
< / dependency > 
cart if act rd > spring - cloud - st arter-al ibaba-nacos 
/ depen den c y

 

4 
ication.ym , 
nnacositg±t : 
spring : 
cloud: 
nacos : 
server-addr: locathost:88k8 # nacos

 

2.Nacos分级处理模型

Na ( 仍 服 务 分 级 存 储 模 型 
集 群 
北 京 
例 如 : 惴 口 为 羽 
服 务 
集 群 
窭 例 
上 海 
例 如 : 提 供 用 户 功 能 的 user 一 se “ ice 
以 机 房 划 分 隻 群 
一 一 、 一 一 例 如 : 杭 州 群 . 上 海 集 群 
集 群 
例 如 : 端 口 为 81 
戛 例 
例 如 : 端 口 为 8082 
杭 州

 

(1)服务集群设置

, btH 
2. 
omapplication.yml, 
spring : 
cloud : 
nacos: 
server-addr: locathost: 8848 # nocos 
discovery: 
cluster-name: HZ # 9/47: HZ 
Ire,$:

设置需要进行集群分配的服务,配置集群名称启动,还需要分配集群在进行修改集群名称然后启动

 

(2)NacosRule负载均衡配置

2. 
3. 
omorder-service*fiapplication.yml , 
spring : 
cloud : 
nacos : 
server-addr: localhost:8848 
# nacos 
discovery : 
cluster-name: HZ 
userservice : 
ribbon: 
NFLoadBa1ancerRuteC1assName: com.alibaba.cloud.nacos.ribbon.NacosRuIe #

. Na 四 sRu [ e 负 载 均 衡 策 酪 
. 优 先 选 择 間 隻 群 服 务 宴 例 列 表 
0 本 地 隻 群 找 不 到 提 供 者 才 去 具 它 集 群 寻 找 , 并 且 会 
报 警 告 
@ 确 定 了 可 用 实 例 列 表 后 。 再 采 用 随 机 负 載 均 衡 挑 选 实

(3)Nacos服务实例的权重设置

根 据 权 重 负 载 均 衡 
实 际 部 署 中 会 出 现 这 样 的 场 景 : 
· 服 务 器 设 备 性 能 有 差 异 , 部 分 实 例 所 在 机 器 性 能 较 好 , 另 一 些 较 差 , 我 们 希 望 性 能 好 的 机 器 承 担 更 多 的 用 
户 请 求 
Nacos 提 供 了 权 重 配 置 来 控 制 访 问 频 率 , 权 重 越 大 则 访 问 频 率 越 高

 

根 据 权 重 负 载 均 衡 
在 Nacos 控 制 台 可 以 设 置 实 例 的 权 重 值 《 首 先 选 中 实 例 后 面 的 编 辑 按 钮 
192J6s 」 , 〗 1 
192 以 6 & 1 以 
meser••ed.regster.sm«e—s 
下 ] , 一 〔 LOUD 
伊 “ ' 了 er. “ 满 伊 = S 
PRING CLOUD 
下 
下 
2 . 
将 权 重 设 置 为 0 . 1 , 测 试 可 以 发 现 8081 被 访 问 到 的 频 率 大 大 降 低 
] 伊 四 艺 1681 到 」

 

(4)namespace -环境隔离

在 Nacos 控 制 台 可 以 用 来 隔 离 不 同 环 境 
NACOS1.4.1 
命 名 空 间 
pub 巛 的 明

 

2 . 
然 后 填 写 一 个 新 的 命 名 空 间 信 息 : 
新 建 命 名 空 间 
命 名 空 间 ID ( 不 迫 则 
自 动 生 成 ) : 
巫 命 名 空 间 名 . 
开 发 环 0

 

3 , 
保 存 后 会 在 控 制 台 看 到 这 个 命 名 空 间 的 id : 
命 名 空 间 名 称 
b 雇 ( 筐 空 间 ) 
扉 名 空 间 ID 
492a7d 到 . 237b 嶙 6a1 . a a . fa8e98e ℃ 勺 
0 
0 
新 建 品 名 空 间 
详 情 歷 蛑 医 
详 情 蜍 辑

 

4. 
Enamespace: 
spring: 
datasource : 
urt: jdbc 
username: root 
password: 123 
driver-class-name: com.mysqt.jdbc . Driver 
cloud: 
nacos : 
server-addr: localhost :8848 
discovery : 
cluster-name: SH # _É;Y 
namespace: 492a7d5d-237b-46a1-a99a-fa8e98e4bOf9 #

 

3.Nacos注册中心原理

na ( 05 氵 王 
定 扌 立 取 
服 务 pull / 
服 务 消 费 者 
《 0 〔 h 两 r8081 
服 务 列 表 缓 存 
动 推 送 
变 更 消 息 
push 
注 册 中 心 
注 册 服 务 信 息 
临 时 实 例 、 
非 临 买 例 
采 用 心 跳 监 、 
、 nacos 主 訪 问 
服 务 提 供 者 
冫 远 程 调 用

 

nacos的非临时实例出现问题,nacos注册中心不会把非临时实例剔除,而是提示不健康。

(1)配置临时实例和非临时实例

spring: 
cloud: 
nacos : 
discovery : 
ephemeral: 
Min—gem-X-u: 
false

总结

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

4.Nacos配置管理

统 一 配 置 管 理 
在 Nacos 中 添 加 配 置 信 息 : 
NACOS 
NACOS L41

 

在 弹 出 表 单 中 填 与 配 置 信 息 : 
00 式 : 
配 置 文 件 的 i 山 @务 名 称 Hprofi 4 后 懼 
0 
分 非 畎 认 即 可 
“ 0 “ 町 
格 式 . 
0 
目 前 支 持 y 孬 m 《 和 。 ' № , 
0

(1)Nacos配置拉取

application. ymt 
nacos* 
spring 
mebean 
bootstrap. ymt

 

<groupld.com . alibaba . 
-nacos 
application.yml : 
spring: 
application : 
name: userservice # ÆSÉ$fi 
profiles : 
active : dev #HÆFØ, Seedev 
cloud : 
nacos: 
config : 
fite 
server-addr: tocathost. 
-extension: yam1 
# Nacos±åt 
•8848

测试读取效果

@RestControtter 
public class UserControuer { 
. dateformat}") 
private String dateformat; 
// S5controuer, 
@GetMapping("now") 
public String now(){ 
return LocatDate.now() .format( 
OateTimeFormatter .0fPattern(dateformat, Locate. CHINA)

5.Nacos配置热更新

• fit—: 
@S1f4j 
@RestController 
@RefreshScope 
public class UserControtIer { 
@VaIue("${pattern.dateformat}") 
private String dateformat;

 

fritz: 
@Component 
@Data 
= "pattern") 
public class PatternProperties { 
private String dateformat;

 

总结

Nacos 配 置 更 改 后 , 微 服 务 可 以 实 现 热 更 新 , 方 式 : 
. 通过@va [ ue 注 解 注 入 , 结É@RefreshScope来刷 新 
@ 通过@ConfigurationpropertiesA„入 自 动 刷 新 
注 意 事 项 : 
不 是 所 有 的 配 置 都 适 合 放 到 配 置 中 心 维 护 起 来 比 较 麻 烦 
建 议 将 一 些 关 腱 参 数 , 需 要 运 行 时 调 整 的 参 数 放 到 nacos 配 
置 中 心 一 般 都 是 自 定 义 配 置

6.Nacos多环境配置共享

多 服 务 共 享 配 置 
多 种 配 置 的 优 先 级 
· 务 名 -profile.— > 服 务 名 称 . yam | > 《 本 地 配 置 
当 前 环 境 配 置 
nacos 中 的 配 置 
本 地 配 置

总结

微 服 务 会 从 nacos 读 取 的 配 置 文 件 : 
. [ 服 务 名 ]-[spring .profile.activel.yaml, 环 境 配 置 
@ [服 务 名 ] 、 yaml, 默 认 配 置 , 多 环 境 共 享 
优 先 级 : 
. [ 服 务 名 ]-[ 环 境 ].yam [ > [ 服 务 名 ] , yam [ > 本 地 配 置