【黑马课程】Nacos原理与实战

黑马课程Nacos原理与实战【学习笔记】

Nacos【注册中心】

一、快速入门

(一)服务注册到Nacos

服务注册到Nacos
在这里插入图片描述

(二)Nacos的依赖

1. 父工程

nacos的管理依赖,复制到pom.xml文件

在这里插入图片描述

2. 客户端

复制到客户端的pom.xml中在这里插入图片描述

(三)配置nacos的服务地址

在这里插入图片描述

(四)总结

在这里插入图片描述

二、服务多级存储模型

引入机房或称为地域的概念,把在同一个机房的多个实例称为一个集群
在这里插入图片描述
直接找实例不好吗?为什么要划分集群?

(一)服务跨集群调用问题

是为了尽可能防止跨集群调用

在这里插入图片描述

(二)如何配置一个实例的集群属性

步骤如下:
在这里插入图片描述
比如说有三个实例,分别为userservice1、userservice2、userservice3
设置前两个为杭州集群,最后一个为青岛集群
那么首先修改yml文件为HZ,启动1和2;然后将当前yml文件中的HZ修改为QD,然后启动3,此时不要再重新启动1和2了,否则1和2会变成QD集群的。
在这里插入图片描述
在这里插入图片描述

(三)总结

在这里插入图片描述

三、NacosRule负载均衡【优先同集群访问】

最终想让orderservice调用userservice时,优先选择本地集群,所以也给orderservice设置集群属性。
在orderservice的yml文件中的spring: 下面配置
在这里插入图片描述
此时,orderservice与userservice1和2都在杭州集群,但经过测试发现,userservice1、2和3都被访问,即都被轮询访问了,并没有优先访问同集群的
我们知道服务在选择实例时的规则是由负载均衡实现的,要想实现优先同集群访问的负载均衡规则,需要去修改负载均衡。

(一)根据集群负载均衡

在这里插入图片描述
第2步在yml文件中
在这里插入图片描述

(二)同集群中实例之间是如何访问的

在本地集群内的多个服务当中,再采用随机方式进行负载均衡

(三)本地集群中若没有实例会跨集群访问

当userservice1和2停掉服务之后,orderservice的访问会怎么样?
会在idea中报警告
在这里插入图片描述

(四)总结

在这里插入图片描述

四、根据权重负载均衡

(一)需求


如何控制不同服务的请求量?
在这里插入图片描述

(二)步骤

在这里插入图片描述
在这里插入图片描述
将userservice1 的权重修改为0.1
在这里插入图片描述

权重调成0时,就不会被访问,有什么作用?
在做服务升级时,有多个服务器,可以将某个服务器的权重设置为0,然后对其停机,升级完再重启,然后其权重自小变大,慢慢调,做个测试(平滑升级)

(三)总结

在这里插入图片描述

五、环境隔离—namespace

Nacos中服务存储和数据存储的最外层都是一个名为namespace的东西,用来做最外层的隔离

在这里插入图片描述

(一)namespace:

service下面是集群,集群下面是不同实例;
可以基于开发环境、测试环境进行隔离

(二)group:分组

把业务相关度比较好的服务放到一个组

(三)配置方法

在这里插入图片描述

(四)总结

在这里插入图片描述

六、Nacos与Eureka对比

(一)Nacos注册中心细节分析

1. 临时实例与非临时实例

临时实例:将来可以人为地把服务停掉,采用心跳检测,会剔除
非临时实例:nacos会主动发请求询问是否存活,nacos不会把实例从列表中剔除,只会标记不健康了,等着服务恢复健康

在这里插入图片描述Eureka每隔30秒会再去拉取一次进行更新

在这里插入图片描述
ephemeral:短暂的

2.更新是否及时和效率问题

Eureka 对于 服务列表更新得不及时,Nacos会做主动推送,更新更及时,效率更高

(二)总结

在这里插入图片描述
Nacos集群更强调服务(数据)的可用性,存在非临时实例时,数据可靠性更重要,CP强调数据可靠性和一致性;Eureka默认采用AP,不支持切换

Nacos【配置管理】

一、统一配置管理

(一)Nacos中新建配置的参数

Data ID: 配置文件的名称,一般以 “微服务名称-环境名称.yaml” 命令
group: 类似于Java中的包,用来对不同类型的微服务配置文件进行分组管理

(二)配置拉取

1.没有nacos时,服务如何获取配置

在这里插入图片描述

2.有nacos时,服务如何获取配置

在这里插入图片描述

因为 bootstrap.yml文件的启动优先级高于application.yml,所以可以把nacos地址放在bootstrap.yml文件中,然后再联合本地配置文件

3.步骤

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.总结

在这里插入图片描述

(三)配置自动刷新(热更新)

在这里插入图片描述
在这里插入图片描述
尽量使用这个注解,通过拼接前缀和dateformat,就可以完成自动加载。
需要先注入到一个对象中去
在这里插入图片描述在这里插入图片描述

总结

在这里插入图片描述

(四)微服务的配置共享问题

比如在开发、测试中的值都是一样的,就可以用一份

多环境共享配置

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述

二、Nacos集群搭建

在这里插入图片描述

(一)搭建步骤

在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述

nacos启动,不用加 -m参数,直接启动即可,启动命令为 startup.cmd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值