Nacos 介绍

nacos 安装与快速入门

  • Nacos安装指南
    • 安装与下载
    • 启动
  • Nacos 快速入门
    • 服务注册到nacos
  • Nacos 分级存储模型
    • 配置集群属性
  • 负载均衡配置
  • namespace 环境隔离
  • Nacos与Eurake的对比
  • Nacos 配置管理及设置
    • Nacos配置设置
  • Nacos 热更新
  • Nacos 配置共享
  • Nacos 集群配置

Nacos安装指南

安装与下载

Nacos 介绍_第1张图片

在github上面下载安装包,点击releases进入版本选择页面,选中自己想要的版本,下载后解压到没有中文路劲的文件夹下面,到这里安装就结束了

启动

启动非常简,进入bin目录,执行命令 进入cmd 使用如下命令或者双击startup.cmd

startup.cmd -m standalone

Nacos 快速入门

服务注册到nacos

1.引入spring-cloud-alilbaba 的管理依赖

		
            com.alibaba.cloud
            spring-cloud-alibaba-dependencies
            2021.0.1.0
            pom
            import
        

2.注释到所有eureka的依赖

3.添加nacos客户端依赖(服务发现)

客户端依赖:


    com.alibaba.cloud
    spring-cloud-starter-alibaba-nacos-discovery
    2021.0.1.0

4.修改yml文件

spring:
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos 服务地址

5.重启服务就会发现已经注册成功了

Nacos 分级存储模型

一个服务可以有多个实例,随着业务规模的扩大,我们考虑的问题就越多了,一个服务的多个实例,就相当于一个兰子里面装了很多鸡蛋,当篮子翻了鸡蛋就全坏了,所以这样不行,就引出了分级存储模型 我们不再是服务到实例,而是服务到 服务到集群(就是一个地方的服务实例放一起,根据地域进行划分)到实例,进行了区域的划分我们可以调用本地的服务集群尽量避免跨集群调用,跨集群调用所消耗的资源,时长都会大大提高,一般不建议跨集群访问Nacos 介绍_第2张图片

配置集群属性

  cloud:
    nacos:
      server-addr: localhost:8848 # nacos 服务地址
      discovery:
        cluster-name: SH #代表当前所处地区

负载均衡配置

userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule #负载均衡规则 

当配置以后,则会优先寻找本地集群的服务实例,本地集群没有才会跨集群调用,并且会产生警告,而本地集群调用里面遵循的是随机访问

namespace 环境隔离

在nacos图形界面中找到–>命名空间—>新建命名空间,然后获取生成命名的的uuid ,在需要隔离的微服务的yml配置文件中添加如下配置

spring:
  cloud:
      discovery:
        namespace: 4f9f3352-ac96-49e9-8e33-957a6c0f44a4

不同环境下的服务是不可见的(不能互相交互数据)

Nacos与Eurake的对比

Nacos 介绍_第3张图片
Nacos非为临时实例和非临时实例,临时实例会每隔30秒主动向nacos报告健康状态,如果没有正常报告,则nacos会将其踢出注册中心而非临时实例是nacos主动关怀,并且非临时实例出现了问题nacos会等待其恢复,其二是服务消费者不是每次都会去拉取数据,而是会先去读取服务缓存列表,nacos还有一个特点就是说假如在服务提供者发送下次发送心跳请求时出现了问题nacos会主动向服务消费者推送消息,而ribbon不会

Nacos 介绍_第4张图片
非临时实例配置

spring:
  cloud:
    nacos:
      discovery:
        ephemeral: false #非临时实例

Nacos 配置管理及设置

Nacos配置设置

启动Nacos—>Nacos图形界面—>配置管理—>点击加号新增配置并且设置好相关信息发布就可以了
使用配置,nacos客户端添加依赖

        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
            2.2.5-RocketMQ-RC1
        

新增配置文件bootstrap.yaml,被调用微服务端配置

        
            org.springframework.cloud
            spring-cloud-starter-bootstrap
            3.0.1
        
spring:
  application:
    name: userservice  #服务名称
  profiles:
    active: dev      # 服务开发环境
  cloud:
    nacos:
      server-addr: localhost:8848 #nacos地址
      config:
        file-extension: yaml  # 配置后缀名

Nacos 热更新

1.通过注解@RefreshScope 标注在类上
2.新建一个类

@Data
@Component
@ConfigurationProperties(prefix = "前缀")
public class MyConfigrationProperties {
    public String dateformart;
}
@Autowired
    MyConfigrationProperties myConfigrationProperties;

    @RequestMapping("/date")
    public String getDateName(){
        LocalDateTime now = LocalDateTime.now();
        String format = now.format(DateTimeFormatter.ofPattern(myConfigrationProperties.getDateformart()));
        return format;
    }

Nacos 配置共享

微服务在启动时会从nacos读取多个文件

[spring.application.name]-[spring.profiles.active].yaml(实例user service-dev.yaml) 这个与环境相关 ,
[spring.application.name].yaml(实例user service.yaml) 这个与环境无关
# 无论环境怎么改变一定会读取[spring.application.name].yaml这个文件,文件一定会加载,因此多环境配置共享可以放在这个配置里面

Nacos 介绍_第5张图片
多环境配置的优先级

[spring.application.name]-[spring.profiles.active].yaml(实例user service-dev.yaml) >
	 [spring.application.name].yaml(实例user service.yaml) > 本地配置

Nacos 介绍_第6张图片

Nacos 集群配置

尚未完成

你可能感兴趣的:(java)