Nacos(替代Eureka)注册中心

news2024/11/17 22:29:23

Nacos初步学习

Nacos 是一个开源的服务注册和配置中心,它允许您注册、注销和发现服务实例,并提供了配置管理的功能。下面是Nacos的最基础用法:
在这里插入图片描述

1. 服务注册和发现:

首先,您需要将您的应用程序或服务注册到Nacos中。这可以通过配置应用程序的Nacos客户端来完成。通常,您需要提供服务的名称、主机名和端口等信息,以便其他应用程序可以发现并访问您的服务。

# Nacos注册配置示例
spring:
  application:
    name: my-service
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

然后,其他应用程序可以使用Nacos的客户端来发现并访问您的服务。这允许了动态的、基于服务的通信

@Service
public class MyService {
    @Autowired
    private DiscoveryClient discoveryClient;

    public String discoverService() {
        List<ServiceInstance> instances = discoveryClient.getInstances("my-service");
        if (instances.isEmpty()) {
            return "No service instances available.";
        }
        // 选择一个服务实例并进行通信
        ServiceInstance serviceInstance = instances.get(0);
        String serviceUrl = serviceInstance.getUri().toString();
        // 发送请求到服务
        // ...
        return "Response from service: " + serviceUrl;
    }
}

2. 配置管理:

Nacos还允许您将配置信息存储在其配置中心中,以便动态管理和更新配置。您可以将配置信息存储在Nacos中,并在需要时在应用程序中获取和使用它。

# Nacos配置示例
spring:
  cloud:
    nacos:
      config:
        server-addr: localhost:8848
        namespace: your-namespace
        group: your-group

然后,您可以使用Nacos的配置客户端来获取配置信息。

@RefreshScope
@RestController
public class MyController {
    @Value("${my.property}")
    private String myProperty;

    @GetMapping("/getMyProperty")
    public String getMyProperty() {
        return "My Property: " + myProperty;
    }
}

在这里插入图片描述

与Eureka区别

在生产者-消费者-注册中心模型中,nacos对生产者的非临时实例会主动询问,对消费者的主动推送消息,
采用临时实例时,nacos和Eureka都是遵循AP原则;采用非临时实例时,nacos遵循CP原则

CAP原则

CAP 原则,又称 CAP 定理,是分布式计算领域的一个重要原则,它描述了在分布式系统中三个核心特性之间的权衡关系。这三个特性分别是一致性(Consistency)、可用性(Availability)、分区容忍性(Partition Tolerance)。CAP 原则指出,在一个分布式系统中,不能同时满足这三个特性,只能在它们之间进行权衡选择。以下是对 CAP 原则各个部分的详细解释:

一致性(Consistency):

一致性要求在分布式系统的所有节点上,对于同一个数据操作的结果必须是一致的。也就是说,如果一个节点在某个时刻对数据进行了修改,那么其他节点在后续读取该数据时应该看到修改后的值。
一致性强调数据的强一致性,即任何时间点都能读取到最新的数据,但这可能需要在分布式系统中增加通信和延迟。
可用性(Availability):

可用性要求分布式系统在任何时刻都应该对客户端请求做出响应,即系统能够提供服务。
可用性强调系统的可靠性和可访问性,不管是否有节点出现故障或网络问题,系统都应该继续提供服务。
分区容忍性(Partition Tolerance):

分区容忍性要求分布式系统能够在网络分区或通信故障的情况下继续运行。分区指的是将网络划分为多个不连通的子网络,其中一些子网络之间可能出现通信故障。
分区容忍性强调系统能够处理网络故障和节点之间的通信问题,确保系统的稳定性。
根据 CAP 原则,分布式系统只能在一致性、可用性和分区容忍性中选择两个,无法同时满足所有三个。这被称为 CAP 原则的三角权衡。具体来说:

如果系统追求强一致性和可用性,那么在分区发生时,系统可能会停止响应请求。这种情况下,系统会牺牲分区容忍性。
如果系统追求分区容忍性和可用性,那么系统可能会在某些情况下返回不一致的数据,即牺牲了一致性。
如果系统追求一致性和分区容忍性,那么在分区发生时,系统可能会牺牲可用性,即暂时停止对请求的响应,直到分区问题解决。

分区容忍性(Partition Tolerance)和可用性(Availability)确实都涉及系统在面对问题时继续提供服务,但它们关注的方面略有不同,可以通过以下方式进行区分:

分区容忍性:

**分区容忍性关注的是系统在面对网络分区(Partition)或通信故障时的能力。**分区指的是将网络划分为多个不连通的子网络,其中一些子网络之间可能出现通信故障。
分区容忍性强调系统能够在分区发生时继续运行,即使部分节点无法与其他节点通信。它确保了系统在分区情况下不会因为通信问题而完全停止工作。
分区容忍性通常考虑了分布式系统中的网络延迟、丢包以及节点之间的通信失败。
可用性:

可用性关注的是系统在任何时刻都能够对客户端请求做出响应,即系统能够提供服务。
可用性强调系统的可靠性和可访问性,确保即使没有发生网络分区,系统仍然能够正常运行,不会出现长时间的不可用情况。
可用性通常考虑了系统的健康状况、硬件故障、软件错误以及其他可能导致系统停止响应的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1082951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

抖音商品详情数据接口,抖音商品详情API接口

抖音商品详情API接口获取数据&#xff0c;接口对接可获取到商品标题&#xff0c;商品价格&#xff0c;商品优惠价&#xff0c;优惠券信息&#xff0c;店铺昵称&#xff0c;sku信息&#xff0c;sku主图&#xff0c;视频链接&#xff0c;详情主图&#xff0c;库存&#xff0c;数量…

路由高级特性

项目拓扑与项目需求 项目需求 某企业网络使用ospf和isis作为IGP协议实现内部网络的互联互通&#xff0c;区域规划和IP规划如图所示&#xff0c;现在要求实现如下需求&#xff1a; LSW1和AR1使用vlan10互联&#xff0c;与AR2使用vlan20互联&#xff0c;LSW1与LSW2、3、4之间使…

MySQL实践——MySQL权限

1. 权限概述 MySQL的mysql 系统库提供了user、db、tables_priv、columns_priv、procs_priv、proxies_priv几个表&#xff0c;用于存放不同权限范围的用户账号相关数据&#xff0c;这些表共同组成了MySQL的访问权限控制系统。 MySQL访问权限控制系统的主要功能是对从给定主机连…

springcloud学习笔记(3)-服务管理组件Nacos

Nacos简介 在2中学习了服务治理中心eureka&#xff0c;而本节的nacos来自springcloud alibaba。 Nacos也是一个服务注册和管理的组件。 Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理 官方文档 快速开始 | Spring Cloud Alibaba (aliyun.com) 概述 | Spring C…

如何设计一个网络爬虫?

网络爬虫也被称为机器人或蜘蛛&#xff0c;它被搜索引擎用于发现网络上的新内容或更新内容。内容可以是网页、图片、视频、PDF文件等。网络爬虫开始时会收集一些网页&#xff0c;然后跟随这些网页上的链接收集新的内容。图9-1展示了爬取过程的可视化示例。 爬虫的作用&#xff…

Windows11下清理Docker Desktop与wsl的C盘空间占用

一、清理Docker Desktop的磁盘占用 //【查看docker 占用的空间】 docker system dfTYPE 列出了docker 使用磁盘的 4 种类型&#xff1a; Images&#xff1a;所有镜像占用的空间&#xff0c;包括拉取下来的镜像&#xff0c;和本地构建的。Containers&#xff1a;运行的容器占用…

scratch保护环境 2023年5月中国电子学会图形化编程 少儿编程 scratch编程等级考试一级真题和答案解析

目录 scratch保护环境 一、题目要求 1、准备工作 2、功能实现 二、案例分析

基于YOLO算法的单目相机2D测量(工件尺寸和物体尺寸)

1.简介 1.1 2D测量技术 基于单目相机的2D测量技术在许多领域中具有重要的背景和意义。 工业制造&#xff1a;在工业制造过程中&#xff0c;精确测量是确保产品质量和一致性的关键。基于单目相机的2D测量技术可以用于检测和测量零件尺寸、位置、形状等参数&#xff0c;进而实…

【C++项目】手动实现一个定长内存池(了解内存分配机制、定长内存提高效率 附源码)

定长内存池 1.项目介绍2.代码部分3.测试结果4.相关细节分析总结 1.项目介绍 这是一个 C 中的对象池&#xff08;Object Pool&#xff09;的简单实现&#xff0c;用于更有效地管理对象的内存分配和回收。对象池是一种内存管理技术&#xff0c;旨在减少频繁分配和释放对象的开销&…

大日志(大文件)查看工具

一款很不错的日志查看工具&#xff0c; 优势是能查看很大的日志文档。 无需安装&#xff0c;解压后运行即可&#xff1b; 有注册版&#xff0c;不注册也可以使用。 官方地址&#xff1a; LogViewer - Home page 一个下载地址&#xff1a; 日志查看工具UVviewsoft LogViewer(超大…

linux-动态库和静态库制作和使用

【静态连接和动态连接】C/C编程中的两种有效链接策略_c 动态链接 静态链接_SecureCode的博客-CSDN博客 静、动态库概念和各自优点 静&#xff1a; 动&#xff1a; 动态库&#xff1a;只有一份&#xff0c;运行时具体代码行才加载使用&#xff08;相对慢&#xff09;&#xff1…

FastAPI学习-27 使用@app.api_route() 设置多种请求方式

对同一个访问函数设置多个http 请求方式 api_route 使用 使用methods 参数设置请求方式 from fastapi import FastAPIapp FastAPI() app.api_route(/demo/b, methods[get, post]) async def demo2(): return {"msg": "demo2 success"}判断请求方式…

FreeRTOS学习笔记——四、任务的定义与任务切换的实现

FreeRTOS学习笔记——四、任务的定义与任务切换的实现 0 前言1 什么是任务2 创建任务2.1 定义任务栈2.2 定义任务函数2.3 定义任务控制块2.4 实现任务创建函数2.4.1 任务创建函数 —— xTaskCreateStatic()函数2.4.2 创建新任务——prvInitialiseNewTask()函数2.4.3 初始化任务…

08. 机器学习- 线性回归

文章目录 线性回归 LINEAR REGRESSION 从本次课程开始&#xff0c;大部分时候我将不再将打印结果贴出来了&#xff0c;因为太占用篇幅。小伙伴可以根据我的输出执行敲一遍代码来进行学习和验证。 同样是为了节省篇幅&#xff0c;我也不会再一行行那么仔细的解释代码了&#xff…

学信息系统项目管理师第4版系列24_整合管理

1. PMBOK 1.1. 自1987年以来&#xff0c;PMBOK-直是基于过程的项目管理标准的重要代表 1.1.1. 基于过程的方法是项目管理的基石 1.2. 从2021年开始&#xff0c;第7版PMBOK采用了基于原则的标准&#xff0c;其中包含了 12个项目管理基本原则&#xff0c;这些基本原则为有效的…

android studio 我遇到的Task :app:compileDebugJavaWithJavac FAILED问题及解决过程

前几天一个网友在学习我的一个小项目的时候&#xff0c;发现无法达到目的&#xff0c;在帮他解决问题的过程中发现他用的是最近的giraffe版本的as&#xff0c;我用的是老版本&#xff0c;没办法打开他的项目&#xff0c;没办法只能卸载我的as&#xff0c;安装了最近版的diraffe…

【计算机网络笔记】计算机网络的结构

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 文章目录 系列文章目录网络边缘接入网络数字用户线路 (DSL)电缆网络典型家庭网络的接入机构&#xff08;企业&#xff09;接入网络 (Ethernet)无线接入网络 网络核心Internet结构最后 计算机网络的结构…

排序算法-快速排序法(QuickSort)

排序算法-快速排序法&#xff08;QuickSort&#xff09; 1、说明 快速排序法是由C.A.R.Hoare提出来的。快速排序法又称分割交换排序法&#xff0c;是目前公认的最佳排序法&#xff0c;也是使用分而治之&#xff08;Divide and Conquer&#xff09;的方式&#xff0c;会先在数…

整理mongodb文档:副本集成员可以为偶数

个人博客 整理mongodb文档:副本集成员可以为偶数 想了下&#xff0c;仲裁节点还是不想直接说太多&#xff0c;怕有的同学想太多&#xff0c;且本身副本集就偏向运维的&#xff0c;新手基本也没什么权限操作&#xff0c;就不多废话了。 文章概叙 文章从MongoDB是否可以用偶数…

Redis - php通过ssh方式连接到redis服务器

1.应用场景 主要用于使用php通过ssh方式连接到redis服务器&#xff0c;进行一些操作. 2.学习/操作 1.文档阅读 chatgpt & 其他资料 SSH - 学习与实践探究_ssh应用场景 2.整理输出 2.1 是什么 TBD 2.2 为什么需要「应用场景」 TBD 2.3 什么时候出现「历史发展」 TBD 2.4 …