Nacos

服务注册到Nacos

image-20220313161355882

image-20220313161423300

总结

image-20220313163753529

Nacos服务分级存储模型

image-20220313164102010

将一个服务的多个实例部署到多个机房,把鸡蛋分散开,容灾。

一级是服务,往下是集群,再往下就是实例。

image-20220313164252388

为什么要引入地域集群的划分呢?

为了防止出现跨集群的调用。

image-20220313164453354

服务集群属性

image-20220313164552060

image-20220313165112657

等启动好之后,在修改集群名字,启动其他服务。

image-20220313165305875

查看控制台

image-20220313165358631

总结

image-20220313165439102

要实现order-service进行user-service调用时,优先使用本地集群。这就需要给order-service设置集群属性。

在这里插入图片描述

根据集群负载均衡

image-20220313170007867

配置集群名称

image-20220313170933055

配置服务调用的规则(先访问本地集群的服务,在本地集群中又随机选择,本地挂掉在选择其他集群的服务)

image-20220313171102856

优先选择本地集群,在本地集群的多个服务随机选择进行负载均衡。

总结

image-20220313171620244

根据权重负载均衡

实际部署中会出现这样的场景:

  • 服务器设备性能有差异, 部分实例所在机器性能较好,另- -些较差 ,我们希望性能好的机器承担更多的用
    户请求

Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高

image-20220314143752982

当权重设置为0时,该服务根本就不会被访问。当服务升级的时候,我们不能将服务重启,因为用户还在访问。

我们可以将要升级的服务器权重设置为0,当该服务器没有请求了再做相关操作升级好了之后,将权重设置为小一点,先看看有没有问题。

总结

image-20220314144431852

环境隔离

环境服务实际上就是在对服务做隔离。

image-20220314144623664

服务划分、实例划分是基于业务或者地域做的划分。但还有开发环境、测试环境的变化,所以有了环境隔离。

group分组:将业务相关度比较高的放到一组里面。例如订单和支付。

image-20220314145304763

image-20220314145341830

要想让服务访问要放在一个环境下。

总结

image-20220314145633013

1、服务的消费者并不是每次服务都要去nacos中拉取相关的服务列表,它会做一个缓存,并且进行定期的(30s)拉取更新缓存。

但是如果30s内服务提供者挂了,消费者怎么知道?

使用eurka是不能及时知道的,但是使用nacos是可以知道的,因为eurka只有一个拉取pull,所以时效性比较差,nacos是pull+push,如果nacos发现服务挂了,它会赶紧告诉服务消费者让它赶紧更新。

2、临时实例需要想nacos每隔30s发送心跳检测,如果临时实例挂了,那nacos就会把它从服务列表中删去。但是对于非临时实例(如同亲儿子),nacos会主动检测询问他是否还健康,当非临时实例挂了之后,nacos不会把他删除,而是将其标记为不健康,等它健康了再修改状态。

image-20220314151242088

image-20220314151721310

Nacos与eureka的区别

image-20220314151817712

Nacos配置管理

数十个服务的配置需要修改,我不需要逐一的去修改,而是在一个地方进行修改。并且希望在改动完之后,这个服务不用去做重启配置就能生效,就叫配置更改热更新。

image-20220314153740004

nacos配置书写

image-20220314154330295

并不是将application里面的配置全部挪过来,而是将有热更新需求的挪过来,填写核心的,将来会有变化的(开关类型的,固定模板的例如日期格式)。

image-20220314154621695

配置获取

image-20220314163608658

我们的项目要先去nacos中读取配置文件,但是去哪读取?读取谁?我们nacos的地址再application.yml文件中呢,所以我们要先知道nacos的地址,使用bootstrap.yml,将nacos的地址以及配置文件的相关信息都放在这个里面。

image-20220314163804417

步骤:

image-20220314163930506

image-20220314165635825

三要素:服务名、环境、后缀名。决定了dataID

image-20220314165609895

再去干掉application.yml文件中与bootatrap.yml文件中相同的配置。

将服务名称、nacos地址都干掉,集群地址注释掉

image-20220314165808576

读取配置@Value(${}),来证明能拉取到bootstrap.yml的相关配置。

image-20220314173136028

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1rDxtYTs-1648003284536)(C:/Users/大 大/AppData/Roaming/Typora/typora-user-images/image-20220314164929057.png)]

配置自动更新

image-20220314204047879

image-20220314205507425

另外一种属性注入方式:将其注入到对象里面去,再获取属性。

image-20220314204625201

@ConfigurationProperties完成配置的自动加载。只要两者进行拼接和配置文件一致,就能完成属性的自动注入。

image-20220314205921850

image-20220314210017144

image-20220314210234651

总结

image-20220314210323868

多环境配置共享

有一个配置在开发、测试、上线之后的属性值是一样的,对于这种不用每个环境都配置一次,而是使用多环境配置共享。

image-20220315165051694

image-20220315165127397

image-20220315170445665

进行测试

在属性配置类里面添加对应的属性,再在controller里面书写相关方法可以进行请求调用。

image-20220315170932182

image-20220315172233211

修改环境

image-20220315171808621

当本地配置和远端配置有相同的属性时,

image-20220315171852132

image-20220315171840585

image-20220315171904340

多重配置的优先级

image-20220315170157671

总结

image-20220315170225480

Nacos集群配置

mg-Fiy3G5W4-1648003284552)]

[外链图片转存中…(img-38pYIXwf-1648003284553)]

[外链图片转存中…(img-X5EmBscs-1648003284554)]

多重配置的优先级

[外链图片转存中…(img-iM0e9lpA-1648003284555)]

总结

[外链图片转存中…(img-mjzjAWHk-1648003284556)]

Nacos集群配置

image-20220315172418071
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值