Nacos

Nacos服务分级存储模型

在这里插入图片描述

  • 一级是服务,例如userservice
  • 二级是集群,例如杭州或上海
  • 三级是实例,例如杭州机房的某台部署了userservice的服务器

集群调用

  • 调用方设置
spring:
  application:
    name: orderservice
  cloud:
    nacos:
      server-addr: 127.0.0.1:8848 # nacos服务地址
      discovery:
        cluster-name: beijing
userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule  
    # 被调用方负载均衡规则
  • 被调用方集群设置
  • nacos 视图查看
    在这里插入图片描述
  • 集群调用结论
优先选择同集群服务实例列表
本地集群找不到提供者,才去其它集群寻找,并且会报警告
(warn:A cross-cluster call occurs)跨集群调用警告
确定了可用实例列表后,再采用随机负载均衡挑选实例

Nacos注册中心

  • 临时实例和非临时实例
spring:
  cloud:
    nacos:
        ephemeral: true # 是否是临时实例
        #临时实例宕机时,会从nacos的服务列表中剔除,而非临时实例则不会

Nacos与eureka比较

  • 相同点
都支持服务注册和服务拉取
都支持服务提供者心跳方式做健康检测(提供者向注册中心定时发送心跳)
  • 不同点
Nacos支持服务端主动检测提供者状态:
  临时实例采用心跳模式,非临时实例采用主动检测模式
  临时实例心跳不正常会被剔除,非临时实例则不会被剔除
  
Nacos支持服务列表变更的消息推送模式,服务列表更新更及时

Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式

统一配置管理(实现配置的热更新)

  • 配置读取流程

在这里插入图片描述

bootstrap.yml文件,这个文件是引导文件,优先级高于application.yml:
配置热更新
  • @Value读取
@RefreshScope 必须捆绑刷新注解使用,否则无法热更新
public class UserController {

    @Value("${pattern.dateformat}")
    private String dateformat;
}
  • 配置文件读取
@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
    private String dateformat;
    private String envSharedValue;
    private String name;
}
nacos配置文件读取细则
  • 种类
[spring.application.name]-[spring.profiles.active].yaml,
例如:userservice-dev.yaml

[spring.application.name].yaml,
例如:userservice.yaml
  • 配置文件优先级
[服务名]-[环境].yaml >[服务名].yaml > 本地配置

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值