【java、微服务、nacos】nacos学习笔记

Nacos服务分级存储模型

① 一级是服务,例如userservice

②二级是集群,例如杭州或上海

③ 三级是实例,例如杭州机房的某台部署了userservice的服务器

配置实例集群属性

改变服务的yml文件

复制代码
spring:
  cloud:
    nacos:
      discovery:
        cluster-name: HZ

NacosRule负载均衡

在调用模块的yml中添加

复制代码
userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule

根据权重负载均衡

环境隔离(namespace)

配置管理

配置更改热更新

统一配置管理:

步骤:

1.引入依赖

复制代码
<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

2.在服务模块添加bootstrap.yml(优先级高于application. yml)

复制代码
spring:
  application:
    name: userservice
  profiles:
    active: dev
  cloud:
    nacos:
      server-addr: localhost:8848
      config:
        file-extension: yaml

执行步骤:项目启动-》读取nacos中配置文件(以bootstrap.yml为引导)-》读取本地配置文件application.yml-》创建spring容器-》加载bean

配置热更新

方法一:在@Value注入的变量所在类上添加注解@RefreshScope

java 复制代码
@Slf4j
@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController {
}

方法二:使用@ConfigurationProperties注解

java 复制代码
package cn.itcast.user.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * PatternProperties
 *
 * @author huang
 * @package cn.itcast.user.config
 * @since 2024/3/1 19:36
 */
@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
    private String dataformat;
}

之后要用自动装配把PatternProperties实例对象自动加载到要使用的地方

多环境配置共享

Data Id为服务名就是多环境配置共享

如果要分开发和发布环境,要加上-dev或-test之类的

配置优先级:服务名-profile.yaml >服务名称yaml>本地配置

搭建Nacos集群

Feign远程调用

Gateway网关

相关推荐
彧azz15 小时前
图的存储结构详解:邻接矩阵的原理、实现与应用
开发语言·数据结构·学习·php
IT_Octopus15 小时前
IntelliJ 本地日志路径自定义:`-DLOG_PATH=./logs` 为什么总“不听话“
java·log4j·intellij-idea
嵌入式学习菌16 小时前
Modbus‑RTU 数据类型分析
开发语言·单片机·bug
长征coder16 小时前
【无标题】
java·性能优化
matlab代码17 小时前
基于matlab数字图像处理的指纹识别系统【源码68期】
开发语言·matlab
新时代牛马17 小时前
PCI与PCIe 硬件原理、配置空间/BAR 与 Linux 驱动完整篇:从 LTSSM、TLP 到 ECAM 与probe
java·linux·服务器
Bs_MoneyMagnet17 小时前
基于springboot+vue的医疗健康便民服务平台的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring
matlab代码17 小时前
基于matlab的水果识别系统(苹果香蕉菠萝梨桃子)【源码65期】
开发语言·matlab
wuyk55517 小时前
从零吃透 MQTT 通信|第 8 章 FreeRTOS 多任务架构下 MQTT 工程架构,任务拆分、队列解耦、临界区保护
c语言·开发语言·stm32·学习·架构
weixin1997010801617 小时前
[特殊字符]《跨境二手ERP对接Back Market:标准化API + 7~10工作日技术合规审核实录》(附Python源码)
开发语言·python·pandas