SpringCloud - Nacos详解

SpringCloud微服务框架搭建详解(基于Nacos) SpringCloud微服务框架搭建详解 阅读详情
AI摘要

本文详细介绍了Nacos作为微服务架构中的服务发现和注册中心的作用,包括其为何出现、功能特性、注册中心原理。通过快速入门示例展示了如何搭建服务提供者和消费者,以及如何使用Nacos进行服务注册和消费。此外,还探讨了Nacos的数据模型、多环境配置以及命名空间在环境隔离中的应用。

1、概述

服务发现是微服务架构体系中最关键的组件之一。如果尝试用手动的方式来给每一个客户端来配置所有服务提供者的服务列表是一件非常困难的事,而且也不利于服务的动态扩缩容。

Nacos Discovery 可以帮助您将服务自动注册到 Nacos 服务端并且能够动态感知和刷新某个服务实例的服务列表。

除此之外,Nacos Discovery 也将服务实例自身的一些元数据信息-例如 host,port, 健康检查URL,主页等内容注册到 Nacos。

1.1 为什么会出现Nacos

Nacos是阿里巴巴开源的一个对微服务架构中服务发现,配置管理和服务管理平台,由于第一代SpringCloud也就是SpringCloud Netflix很多组件已经进入停更维护模式,所以迫使我们必须要找到一个可以代替Netflix的第二代产品,这时候SpringCloud Alibaba出现了。
Nacos就是注册中心 + 配置中心的结合体

1.2 Nacos功能特性
  • 服务发现与健康监测
  • 动态配置管理
  • 动态DNS服务
  • 服务和元数据管理(管理平台的角度,nacos也有一个ui页面,可以看到注册的服务以及实例信息(元数据信息等),动态的服务权重调整,动态服务优雅下线,都可以去做)

2、注册中心原理

在使用注册中心时,一共有三种角色:服务提供者(Service Provider)、服务消费者(Service Consumer)、注册中心(Registry)。

一般服务提供者被称为Server,服务消费者被称为Client。

三个角色交互图:
在这里插入图片描述

Nacos注册中心架构:
在这里插入图片描述
服务注册表结构:
在这里插入图片描述

1)服务提供者Provider:

  • 启动时,向 Registry 注册自己为一个服务(Service)的实例(Instance)
  • 同时,定期向 Registry 发送心跳,告诉自己还存活。
  • 关闭时,向 Registry 取消注册。

2)服务消费者Consumer:

  • 启动时,向Registry订阅使用到的服务,并缓存服务的实例列表在内存中。
  • 后续,Consumer 向对应服务的 Provider 发起调用时,从内存中的该服务的实例列表选择一个,进行远程调用。
  • 关闭时,向 Registry 取消订阅。

3)注册中心Registry

  • 服务提供者Provider超过一定时间未发送心跳时,将从注册中心的服务列表移除。
  • 服务的实例列表发生变化(新增或者移除)时,通知订阅该服务的消费者Consumer,从而让 Consumer 能够刷新本地缓存。

另外,Provider 和 Consumer 是角色上的定义,**一个服务同时即可以是 Provider 也可以作为 Consumer。**例如说,优惠劵服务可以给订单服务提供接口,同时又调用用户服务提供的接口

3、快速入门

示例代码对应仓库:

* 服务提供者:labx-01-sca-nacos-discovery-demo01-provider
* 服务消费者:labx-01-sca-nacos-discovery-demo01-consumer

本小节,我们来搭建一个 Nacos Discovery 组件的快速入门示例。步骤如下:

  • 首先,搭建一个服务提供者demo-provider,注册服务到Nacos中。
  • 然后,搭建一个服务消费者demo-consumer,从 Nacos 获取到 demo-provider 服务的实例列表,选择其中一个示例,进行 HTTP 远程调用。

3.1 搭建服务提供者

创建 labx-01-sca-nacos-discovery-demo01-provider 项目,作为服务提供者 demo-provider。最终项目代码如下图所示:
在这里插入图片描述

3.1.1 引入依赖

在 pom.xml 文件中,主要引入 Spring Cloud Nacos Discovery 相关依赖。代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>labx-01</artifactId>
        <groupId>cn.iocoder.springboot.labs</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>labx-01-sca-nacos-discovery-demo01-provider</artifactId>

    <properties>
        <spring.boot.version>2.2.4.RELEASE</spring.boot.version>
        <spring.cloud.version>Hoxton.SR1</spring.cloud.version>
        <spring.cloud.alibaba.version>2.2.0.RELEASE</spring.cloud.alibaba.version>
    </properties>

    <!--
        引入 Spring Boot、Spring Cloud、Spring Cloud Alibaba 三者 BOM 文件,进行依赖版本的管理,防止不兼容。
        在 https://dwz.cn/mcLIfNKt 文章中,Spring Cloud Alibaba 开发团队推荐了三者的依赖关系
     -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>${spring.boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring.cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring.cloud.alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <!-- 引入 SpringMVC 相关依赖,并实现对其的自动配置 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- 引入 Spring Cloud Alibaba Nacos Discovery 相关依赖,将 Nacos 作为注册中心,并实现对其的自动配置 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
    </dependencies>

</project>

引入 spring-cloud-starter-alibaba-nacos-discovery 依赖,将 Nacos 作为注册中心,并实现对它的自动配置。
引入spring-cloud-starter-alibaba-nacos-discovery 依赖,它的内部同时也引入了ribbon
在这里插入图片描述
@LoadBalanced注解

3.1.2 配置文件

创建 application.yaml 配置文件,添加 Nacos Discovery 配置项。配置如下:

spring:
  application:
    name: demo-provider # Spring 应用名
  cloud:
    nacos:
      # Nacos 作为注册中心的配置项,对应 NacosDiscoveryProperties 配置类
      discovery:
        server-addr: 127.0.0.1:8848 # Nacos 服务器地址
        service: ${spring.application.name} # 注册到 Nacos 的服务名。默认值为 ${spring.application.name}。

server:
  port: 18080 # 服务器端口。默认为 8080

重点看 spring.cloud.nacos.discovery 配置项,它是 Nacos Discovery 配置项的前缀,对应 NacosDiscoveryProperties 配置项.

3.1.3 DemoProviderApplication

创建 DemoProviderApplication 类,创建应用启动类,并提供 HTTP 接口。代码如下:

@SpringBootApplication
@EnableDiscoveryClient
public class DemoProviderApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoProviderApplication.class, args);
    }

    @RestController
    static class TestController {

        @GetMapping("/echo")
        public String echo(String name) {
            return "provider:" + name;
        }

    }
}

① @SpringBootApplication注解,被添加在类上,声明这是一个Spring Boot应用。SpringCloud是构建在SpringBoot之上的,所以需要添加。

② @EnableDiscoveryClient注解,开启Spring Cloud的注册发现功能,不过从 Spring Cloud Edgware 版本开始,实际上已经不需要添加 @EnableDiscoveryClient 注解,只需要引入 Spring Cloud 注册发现组件,就会自动开启注册发现的功能。例如说,我们这里已经引入了 spring-cloud-starter-alibaba-nacos-discovery 依赖,就不用再添加 @EnableDiscoveryClient 注解了。

③ TestController 类,提供了 /echo 接口,返回 provider:${name} 结果。

3.1.4 简单测试

① 通过 DemoProviderApplication 启动服务提供者。

  • 服务demo-provider注册到Nacos上的日志。

② 打开Nacos控制台,可以在服务列表看到服务demo-provider
在这里插入图片描述

3.2 搭建服务消费者

创建 labx-01-sca-nacos-discovery-demo01-consumer 项目,作为服务提供者 demo-consumer。最终项目代码如下图所示:
在这里插入图片描述
整个项目的代码,和服务提供者是基本一致的,毕竟是示例代码。

3.2.1 引入依赖

和「3.1.1 引入依赖」一样。

3.2.2 配置文件

创建yaml配置文件,添加相应配置项。配置如下:

spring:
  application:
    name: demo-consumer # Spring 应用名
  cloud:
    nacos:
      # Nacos 作为注册中心的配置项,对应 NacosDiscoveryProperties 配置类
      discovery:
        server-addr: 127.0.0.1:8848 # Nacos 服务器地址

server:
  port: 28080 # 服务器端口。默认为 8080

和「3.1.2 配置文件」基本一致,主要是将配置项目 spring.application.name 修改为 demo-consumer。

3.2.3 DemoConsumerApplication

创建 DemoConsumerApplication 类,创建应用启动类,并提供一个调用服务提供者的 HTTP 接口。代码如下:

@SpringBootApplication
// @EnableDiscoveryClient
public class DemoConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoConsumerApplication.class, args);
    }

    @Configuration
    public class RestTemplateConfiguration {

        @Bean
        public RestTemplate restTemplate() {
            return new RestTemplate();
        }

    }

    @RestController
    static class TestController {

        @Autowired
        private DiscoveryClient discoveryClient;
        @Autowired
        private RestTemplate restTemplate;
        @Autowired
        private LoadBalancerClient loadBalancerClient;

        @GetMapping("/hello")
        public String hello(String name) {
            // <1> 获得服务 `demo-provider` 的一个实例
            ServiceInstance instance;
            if (true) {
                // 获取服务 `demo-provider` 对应的实例列表
                List<ServiceInstance> instances = discoveryClient.getInstances("demo-provider");
                // 选择第一个
                instance = instances.size() > 0 ? instances.get(0) : null;
            } else {
                instance = loadBalancerClient.choose("demo-provider");
            }
            // <2> 发起调用
            if (instance == null) {
                throw new IllegalStateException("获取不到实例");
            }
            String targetUrl = instance.getUri() + "/echo?name=" + name;
            String response = restTemplate.getForObject(targetUrl, String.class);
            // 返回结果
            return "consumer:" + response;
        }

    }

}

① @EnableDiscoveryClient 注解,因为已经无需添加,所以我们进行了注释,原因在上面已经解释过。

② RestTemplateConfiguration 配置类,创建 RestTemplate Bean。RestTemplate 是 Spring 提供的 HTTP 调用模板工具类,可以方便我们稍后调用服务提供者的 HTTP API。

③ TestController 提供了 /hello 接口,用于调用服务提供者的 /demo 接口。代码略微有几行,我们来稍微解释下哈。

discoveryClient 属性,DiscoveryClient 对象,服务发现客户端,上文我们已经介绍过。这里我们注入的不是 Nacos Discovery 提供的 NacosDiscoveryClient,保证通用性。未来如果我们不使用 Nacos 作为注册中心,而是使用 Eureka 或则 Zookeeper 时,则无需改动这里的代码。

loadBalancerClient 属性,LoadBalancerClient 对象,负载均衡客户端。稍后我们会使用它,从 Nacos 获取的服务 demo-provider 的实例列表中,选择一个进行 HTTP 调用。

/hello 接口,示例接口,对服务提供者发起一次 HTTP 调用。

  • <1> 处,获得服务 demo-provider 的一个实例。这里我们提供了两种方式的代码,分别基于 DiscoveryClient 和 LoadBalancerClient。
  • <2> 处,通过获取到的服务实例 ServiceInstance 对象,拼接请求的目标 URL,之后使用 RestTemplate 发起 HTTP 调用。
3.2.4 简单测试

① 通过 DemoConsumerApplication 启动服务消费者,IDEA 控制台输出日志如:

// ... 省略其它日志
2020-02-08 18:05:35.810  INFO 35047 --- [           main] c.a.c.n.registry.NacosServiceRegistry    : nacos registry, DEFAULT_GROUP demo-consumer 10.171.1.115:28080 register finished

  • 服务demo-consumer注册到Nacos上的日志。

注意,服务消费者和服务提供是一种角色的概念,本质都是一种服务,都是可以注册自己到注册中心的。

② 打开 Nacos 控制台,可以在服务列表看到服务 demo-consumer。如下图:
在这里插入图片描述
③ 访问服务消费者的 http://127.0.0.1:28080/hello?name=yudaoyuanma 接口,返回结果为 “consumer:provider:yudaoyuanma”。说明,调用远程的服务提供者成功。

④ 打开 Nacos 控制台,可以在订阅者列表看到订阅关系。如下图:
在这里插入图片描述
⑤ 关闭服务提供者后,再次访问 http://127.0.0.1:28080/hello?name=yudaoyuanma 接口,返回结果为报错提示 “获取不到实例”,说明我们本地缓存的服务 demo-provider 的实例列表已刷新,没有任何实例。

4.Nacos概念详解

4.1 数据模型

Nacos 数据模型 Key 由三元组唯一确认。如下图所示:
在这里插入图片描述

  • 作为注册中心时,Namespace + Group + Service
  • 作为配置中心时,Namespace + Group + DataId
4.1.1 Namespace命名空间

用于进行租户粒度的配置隔离。默认为 public(公共命名空间)。

不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。

4.1.2 Group服务分组

不同的服务可以归类到统一分组。默认为DEFAULT_GROUP(默认分组).

Service服务

例如说,用户服务、订单服务、商品服务等等。

5、更多的配置项信息

  • Nacos服务器相关
    在这里插入图片描述

  • 服务相关
    在这里插入图片描述

6、多环境配置

同一个服务,我们会部署到开发、测试、预发布、生产等环境中,那么我们需要在项目中,添加不同环境的 Nacos 配置。一般情况下,开发和测试使用同一个 Nacos,预发布和生产使用另一个 Nacos。那么针对相同的 Nacos,我们怎么实现不同环境的隔离呢?

实际上,Nacos 开发者已经告诉我们如何实现了,通过 Nacos Namespace 命名空间。文档说明如下:

下面,我们来搭建一个多环境配置的示例。步骤如下:

  • 首先,我们会在 Nacos 中创建开发环境使用的 Namespace 为 dev,测试环境使用的 Namespace 为 uat。
  • 然后,搭建一个服务提供者 demo-provider,使用开发环境配置,注册服务到 Nacos 的 dev Namespace 下。
  • 之后,搭建一个服务消费者 demo-consumer,调用服务提供者 demo-provider 提供的 HTTP 接口。
    • 先使用开发环境配置,因为服务 demo-provider 是在 Nacos dev Namespace 下注册,所以调用它成功。
    • 后使用测试环境配置,因为服务 demo-provider 不在 Nacos uat Namespace 下注册,所以调用它失败。

6.1 创建Nacos命名空间

① 打开 Nacos UI 界面的「命名空间」菜单,进入「命名空间」功能。如下图所示:
在这里插入图片描述
② 点击列表右上角的「新建命名空间」按钮,弹出「新建命名空间」窗口,创建一个 dev 命名空间。输入如下内容,并点击「确定」按钮,完成创建。如下图所示:
在这里插入图片描述
③ 重复该操作,继续创建一个 uat 命名空间。最终 dev 和 uat 信息如下图:
在这里插入图片描述

6.2 搭建服务提供者

从「3.1 搭建服务提供者」小节的 labx-01-sca-nacos-discovery-demo01-provider 项目,复制出 labx-01-sca-nacos-discovery-demo02-provider 项目。然后在其上进行修改,方便搭建~

6.2.1 配置文件

修改 application.yaml 配置文件,将 Nacos Discovery 配置项删除,稍后添加在不同环境的配置文件中。配置如下:

spring:
  application:
    name: demo-provider # Spring 应用名

server:
  port: 18080 # 服务器端口。默认为 8080

创建开发环境使用的 application-dev.yaml 配置文件,增加 Namespace 为 dev 的 Nacos Discovery 配置项。配置如下:

spring:
  cloud:
    nacos:
      # Nacos 作为注册中心的配置项,对应 NacosDiscoveryProperties 配置类
      discovery:
        server-addr: 127.0.0.1:8848 # Nacos 服务器地址
        namespace: 14226a0d-799f-424d-8905-162f6a8bf409 # Nacos 命名空间 dev 的编号

创建测试环境使用的 application-uat.yaml 配置文件,增加 Namespace 为 uat 的 Nacos Discovery 配置项。配置如下:

spring:
  cloud:
    nacos:
      # Nacos 作为注册中心的配置项,对应 NacosDiscoveryProperties 配置类
      discovery:
        server-addr: 127.0.0.1:8848 # Nacos 服务器地址
        namespace: bc8c8c2d-bd85-42bb-ada3-1a8f940ceb20 # Nacos 命名空间 uat 的编号
6.2.2 简单测试

下面,我们使用命令行参数进行 --spring.profiles.active 配置项,实现不同环境,读取不同配置文件。

① 先配置 --spring.profiles.active 为 dev,设置 DemoProviderApplication 读取 application-dev.yaml 配置文件。如下图所示:
在这里插入图片描述
之后通过 DemoProviderApplication 启动服务提供者。

② 打开 Nacos 控制台,可以在服务列表看到服务 demo-provider 注册在命名空间 dev 下。如下图:
在这里插入图片描述

6.3 搭建服务消费者

从「3.2 搭建服务消费者」小节的 labx-01-sca-nacos-discovery-demo01-consumer 项目,复制出 labx-01-sca-nacos-discovery-demo02-consumer 项目。然后在其上进行修改,方便搭建~

6.3.1 配置文件

修改 application.yaml 配置文件,将 Nacos Discovery 配置项删除,稍后添加在不同环境的配置文件中。配置如下:

spring:
  application:
    name: demo-consumer # Spring 应用名

server:
  port: 28080 # 服务器端口。默认为 8080

创建开发环境使用的 application-dev.yaml 配置文件,增加 Namespace 为 dev 的 Nacos Discovery 配置项。配置如下:

spring:
  cloud:
    nacos:
      # Nacos 作为注册中心的配置项,对应 NacosDiscoveryProperties 配置类
      discovery:
        server-addr: 127.0.0.1:8848 # Nacos 服务器地址
        namespace: 14226a0d-799f-424d-8905-162f6a8bf409 # Nacos 命名空间 dev 的编号

创建测试环境使用的 application-uat.yaml 配置文件,增加 Namespace 为 uat 的 Nacos Discovery 配置项。配置如下:

spring:
  cloud:
    nacos:
      # Nacos 作为注册中心的配置项,对应 NacosDiscoveryProperties 配置类
      discovery:
        server-addr: 127.0.0.1:8848 # Nacos 服务器地址
        namespace: bc8c8c2d-bd85-42bb-ada3-1a8f940ceb20 # Nacos 命名空间 uat 的编号

6.2.3 测试

下面,我们使用命令行参数进行 –spring.profiles.active 配置项,实现不同环境,读取不同配置文件。
① 先配置 --spring.profiles.active 为 dev,设置 DemoConsumerApplication 读取 application-dev.yaml 配置文件。如下图所示:
在这里插入图片描述
之后通过 DemoConsumerApplication 启动服务消费者

访问服务消费者的 http://127.0.0.1:28080/hello?name=yudaoyuanma 接口,返回结果为 “consumer:provider:yudaoyuanma”。说明,调用远程的服务提供者【成功】。

② 再配置 --spring.profiles.active 为 uat,设置 DemoConsumerApplication 读取 application-uat.yaml 配置文件。如下图所示:
在这里插入图片描述
之后通过 DemoConsumerApplication 启动服务消费者。

访问服务消费者的 http://127.0.0.1:28080/hello?name=yudaoyuanma 接口,返回结果为 报错提示 “获取不到实例”。说明,调用远程的服务提供者【失败】。

原因是,虽然说服务 demo-provider 已经启动,因为其注册在 Nacos 的 Namespace 为 dev,这就导致第 ① 步启动的服务 demo-consumer 可以调用到该服务,而第② 步启动的服务 demo-consumer 无法调用到该服务。

即,我们可以通过 Nacos 的 Namespace 实现不同环境下的服务隔离。未来,在开源版本 Nacos 权限完善之后,每个 Namespace 提供不同的 AccessKey、SecretKey,保证只有知道账号密码的服务,才能连到对应的 Namespace,进一步提升安全性。

微服务(五)nacos配置管理 1 统一配置管理 1.1 nacos中添加配置文件 注意:项目的核心配置,需要热更新的配置才有放到nacos管理的必要。基本不会变更的一些配置还是保存在微服务本地比较好。 1.2 从微服务拉取配置 微服务要拉取nacos中管理的配置,并且与本地的application.yml配置合并,才能完成项目启动。 但如果尚未读取application.yml,又如何得知nacos地址呢? 因此spring引入了一种新的配置文件:bootstrap.yaml文件,会在application.yml之 阅读详情

相关推荐

Spring Cloud 整合 Nacos 的详细教程

Spring Cloud 整合 Nacos 的详细教程

一个想交朋友的陌生人 3973

【Springcloud】Nacos配置中心和服务中心

(1)服务发现机制就是通过一个中间件去记录服务提供者的ip地址,服务名以及心跳等数据(比如用mysql去存储这些信息,所以Nacos要配置持久化),然后服务消费者会去这个中间平台去查询相关信息,然后再去访问对应的地址,这就是服务注册和服务发现。(2)当用户地址发生了变化也没有影响,因为服务提供方修改了用户地址,在中间件中会被更新,当服务消费方去访问中间件时就能及时获取最新的用户地址,就不会出现用户地址发生变化导致服务找不到什么是Nacos(2)下载安装搭建NacosServerNacos下载。

weixin_44823875的博客 6334

SpringCloud + Nacos 2.2.3 + K8s 优雅停机:preStop 配置与 terminationGracePeriodSeconds 详解

本文详细介绍了SpringCloud与Nacos 2.2.3在Kubernetes环境中实现优雅停机的全链路实践方案。通过preStop钩子配置权重控制、合理设置terminationGracePeriodSeconds以及优化SpringCloud停机流程,确保微服务在滚动更新时实现零请求丢失和平滑升级,显著提升系统稳定性。

weixin_33911824的博客 395

SpringCloud 集成 Nacos

一篇超详细根据idea搭建一个基于Maven实现springcloud+nacos的项目

一名后端程序猿 1万+

SpringCloud Alibaba - Nacos 注册发现、分级模型、配置集群、环境隔离、原理

nacos 默认配置端口为 8848,如果你电脑上的 8848 端口被占用,那么就可以对 nacos 端口信息进行配置~c)修改完后点击确定,就完成啦,可以达到这样一个效果——使得端口为 8081 的服务访问频率是端口号为 8082 的服务访问频率的十分之一!服务调用尽可能选择本地集群的服务,跨集群调用延迟较高,当本地集群不可访问时,再去访问其它集群。前面我们提到 Nacos 的服务分级模型,他会优先访问本地集群,实际上这也是需要进行配置的~

CYK_byte的博客 6954

星辰超级智能体TeleClaw桌面版深度体验:央企出品的本地AI生产力助手

中国电信星辰超级智能体TeleClaw桌面版是一款本地化AI生产力助手,主打数据安全、自主高效和深度协同。作为程序员,作者实测其核心功能包括本地数据处理、长期记忆、定时任务和代码开发辅助,特别适合敏感数据处理和日常办公自动化。相比在线AI工具,TeleClaw在数据安全、合规性和自动化能力方面优势明显,但技能生态和响应速度仍有提升空间。总体评价为务实高效的本地AI助手,尤其适合对数据安全有要求的企业用户。

研究中.... 1345

java整合spring cloud,SpringCloud整合Nacos实现流程详解

SpringCloud 版本org.springframework.cloudspring-cloud-dependenciesGreenwich.SR2pomimportNacos pomcom.alibaba.cloudspring-cloud-starter-alibaba-nacos-config${alibaba-nacos-config.version}org.springframew...

weixin_39517202的博客 288

用户存续期价值评估(CLV) 一

用户存续期价值评估(CLV) 1 一. 定义 ​     用户存续期价值(Customer Lifetime Value),也可称为CLTV、LCV或者LTV,是企业对未来一个客户与其的关系所带来的净收益的预测。这个预测模型可以有不同水平的复杂度和精确度,从一个直观感觉到使用复杂的预测技术。CLV可以被简单理解为客户关系的价值,也就是未来由于与客户的关系所带...

weixin_43171270的博客 8024

Nacos详解(springcloud+nacos实战)

Nacos是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现配置管理和服务管理平台。Nacos就是注册中心 + 配置中心的结合服务发现与服务健康检查:Nacos使服务更容易注册,并通过DNS或HTTP接口发现其他服务,Nacos还提供服务的实时健康检查,以防止向不健康的主机或服务实例发送请求。动态配置管理:动态配置服务允许您在所有环境中以集中和动态的方式管理所有服务的配置。

风也温柔☆的博客 1181

基于Python的高考志愿辅助填报系统

在实际应用中,系统需要处理更复杂的数据,包括更多的高校和专业信息、更详细的录取规则、以及用户的历史选择等。系统需要提供用户友好的界面,让考生输入自己的信息和偏好,然后通过后端的模型计算出推荐的志愿列表。此外,系统还应该提供一些个性化的服务,如根据考生的输入动态调整推荐策略、保存用户的填报历史和偏好等。特征可能包括考生的分数、所在省份、文理科类别、专业偏好、高校的地理位置、排名、专业的就业前景等。3. **推荐逻辑**:根据用户的分数和专业偏好,结合历史录取数据,使用简单的算法来推荐可能录取的高校和专业。

coder_wwwdy的博客 1976

自定义串口通讯协议

自定义串口通讯协议的实现方法

qq_44826038的博客 2172

springcloud nacos入门详解

一:Nacos 介绍 nacos整合springcloud 主要是用来做动态配置服务和服务发现管理的,更详细的介绍我就不说了 感兴趣的可以去看官网 中文介绍很友好 https://nacos.io/zh-cn/ 二:Nacos 动态配置 1.使用nacos作为配置中心统一管理配置 引入依赖(这里我使用的是springcloud G 版本 注意和你的版本对应) <dependency> <groupId>org.springframework.cloud&

licux的博客 1165

有限时间 vs 固定时间 vs 预定时间滑模:稳定性分析与仿真验证方法对比(中)

有限时间滑模控制(FTSMC)和固定时间滑模控制(FixTSMC)是两种重要的控制策略,旨在实现系统状态的快速收敛。FTSMC通过设计滑模面和控制律,确保系统状态在有限时间内收敛到原点,但其收敛时间与初始状态相关。FixTSMC则进一步优化,使收敛时间与初始状态无关,适用于高动态环境,具有更强的鲁棒性和更平滑的控制信号。两种方法均通过李雅普诺夫函数证明其稳定性,并通过仿真验证其有效性。FixTSMC在工程应用中更为可靠,尤其适合安全关键系统。

Lyajpunov的博客 3223

【SpringCloud】SpringCloud Nacos详解(注册中心)

SpringCloud Nacos详解(注册中心)

酷酷的馫博客 1991

真格量化-bs套利

#!/usr/bin/env python # coding:utf-8 from PoboAPI import * import datetime import time import numpy as np from copy import * #开始时间,用于初始化一些参数 def OnStart(context) : context.myacc = None #登录交易账号 if context.accounts["回测期权"].Login() : co.

qq_26742269的博客 1319

【即插即用模块】Transformer篇 | ICCV 2025 | MALA :注意力分布神似Softmax,告别线性注意力性能短板!

MALA(Magnitude-Aware Linear Attention)是一种改进的线性注意力机制,通过引入缩放因子和偏移项,解决了传统线性注意力忽视查询幅度的问题,使其分布更接近Softmax Attention。该模块具有线性复杂度(O(n)),结合RoPE和LEPE编码实现全局-局部位置信息混合,通过z值调制平衡信息权重。实验表明MALA在轻量级视觉任务中能有效平衡效率与精度,注意力可视化显示其分布与Softmax Attention高度相似。代码提供完整的RoPE位置编码和线性注意力

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1106

Nacos融合SpringCloud详解,这一篇足够了。

Nacos是阿里巴巴开源的一个针对微服务架构的综合解决方案,它提供了服务发现、配置管理、服务治理等功能。

weixin_44825912的博客 2023

❤️爆肝十二万字《python从零到精通教程》,从零教你变大佬❤️(建议收藏)

文章目录强烈推荐系列教程,建议学起来!!一.pycharm下载安装二.python下载安装三.pycharm上配置python四.配置镜像源让你下载嗖嗖的快4.1pycharm内部配置4.2手动添加镜像源4.3永久配置镜像源五.插件安装(比如汉化?)5.1自动补码神器第一款5.2汉化pycharm5.3其它插件六.美女背景七.自定义脚本开头八、这个前言一定要看九、python入门十、python缩进十一、Python注释1.单行注释2.多行注释十二、Python 变量1.变量定义理解2. 变量名命名3. 分

全栈川川 26万+

SpringCloud Alibaba Nacos详解

SpringCloudAlibaba学习文档 官网文档:Spring Cloud Alibaba 英文文档: https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html https://github.com/alibaba/spring-cloud-alibaba 中文文档:spring-cloud-alibaba/README-zh.md at 2.2.x · ali.

weixin_46618600的博客 2637

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【SpringCloud】SpringCloud Nacos详解(集群配置)

SpringCloud教程之Nacos集群部署

酷酷的馫博客 2314

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

springcloud-alibaba之nacos超级详解

一,springcloud alibaba简介 再介绍一门技术之前,我们一定要先去读他的官网,把它看个两遍三遍的 官网:https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 依托 Spring Cloud A

zhenghuishengq的博客 2377

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【SpringCloud】SpringCloud Nacos详解(配置管理)

SpringCloud教程之Nacos实战(二)

酷酷的馫博客 4400

SpringCloud nacos集群搭建详解

1.集群结构图 官方给出的Nacos集群图: 其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。 我们计划的集群结构: 三个nacos节点的地址: 节点 ip port nacos1 192.168.150.1 8845 nacos2 192.168.150.1 8846 nacos3 192.168.150.1 8847 2.搭建集群 搭建集群的基本步骤: 搭建数据库,初始化数据库表结构 下载nacos安装包 配置nac

mengxianglong123的博客 1799

详解springcloud nacos使用(nacos server安装、nacos异常错误、配置中心数据隔离)

部署文档:https://nacos.io/docs/latest/manual/admin/deployment/deployment-standalone/?2.安装步骤4.启动 nacos server ,windows下执行:.\startup.cmd -m standalone 或者修改startup.cmd中mode=cluster为standalone 双击启动。

工匠精神coding,终生学习 1021

SpringCloud详解01-SpringCloudAlibaba、Nacos

本篇记录一下SpringCloud学习本篇主要介绍了架构的演进,和分布式架构的一些特点,以及SpringCloudAlibaba的基本体系,和注册中心nacos的安装启动,更多内容将在下一篇介绍。

Java学习博客 684

SpringCloud Alibaba 之 Nacos 服务注册和配置中心 详解

一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台 Nacos就是 注册中心+配置中心 的组合官网下载Nacos :home (nacos.io)解压安装包,直接运行bin目录下的 startup.cmd命令运行成功后直接访问 http://localhost:8848/nacos

qie ting feng yin的博客 1208
上一篇: MyBatis中一级缓存和二级缓存详解
下一篇: SpringCloud - Ribbon
程序员老石
博客等级 码龄8年 286粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值