Nacos(替代Eureka)注册中心

Nacos初步学习

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

1. 服务注册和发现:

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

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

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

@Service
public class MyService {@Autowiredprivate 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:8848namespace: your-namespacegroup: 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.mzph.cn/news/101722.shtml

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

相关文章

黑马JVM总结(三十一)

&#xff08;1&#xff09;类加载器-概述 启动类加载器-扩展类类加载器-应用程序类加载器 双亲委派模式&#xff1a; 类加载器&#xff0c;加载类的顺序是先依次请问父级有没有加载&#xff0c;没有加载自己才加载&#xff0c;扩展类加载器在getParent的时候为null 以为Boots…

《设计一款2轮车充电桩系统》

以深圳为例&#xff0c;深圳有400万台电动2轮车&#xff0c;以每个月电费20元计算&#xff0c;深圳每个月用在2轮车充电上的费用为8000万左右。1年10个亿的市场规模。 前景可观&#xff0c;竞争也非常激烈。 本文主要讨论技术实现方案。 方法&#xff1a; 24v/36v直流输出 需…

接口自动化测试 —— 协议、请求流程

一、架构 CRM客户关系管理系统 SAAS Software As A Service 软件即服务 PAAS Platform AS A Service 平台即服务 快速交付→ 快&#xff1a;自己去干、有结果、事事有回音、持续改进 单体架构——》垂直架构——》面向服务架构——》微服务架构&#xff08;分布式&#xf…

MyBatis动态SQL(if、choose、when和otherwise)标签

动态 SQL 是 MyBatis 的强大特性之一。在 JDBC 或其它类似的框架中&#xff0c;开发人员通常需要手动拼接 SQL 语句。根据不同的条件拼接 SQL 语句是一件极其痛苦的工作。例如&#xff0c;拼接时要确保添加了必要的空格&#xff0c;还要注意去掉列表最后一个列名的逗号。而动态…

C#(Csharp)我的基础教程(四)(我的菜鸟教程笔记)-Windows项目结构分析、UI设计和综合事件应用的探究与学习

目录 windows项目是我们.NET学习一开始必备的内容。 1、窗体类&#xff08;主代码文件窗体设计器后台代码文件&#xff09; 主窗体对象的创建&#xff1a;在Program类里面&#xff1a; Application.Run(new FrmMain());这句代码就决定了&#xff0c;当前窗体是项目的主窗体。…

Vuex基础使用存取值+异步请求

一.Vuex简介 vuex是什么&#xff1f; Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。 什么情况使用 Vuex&#xff1f; Vuex 可以帮助我们管理共享状态&#…

阿里云域名免费配置HTTPS

阿里云域名配置HTTPS - 知乎

C++学习——new 和 delete 运算符简介

以下内容源于C语言中文网的学习与整理&#xff0c;非原创&#xff0c;如有侵权请告知删除。 在C语言中&#xff0c;动态地分配内存用 malloc() 函数&#xff0c;释放内存用 free() 函数。如下所示&#xff1a; int* p(int*)malloc(sizeof(int)*10);//分配10个int型的内存空间f…

jwttoken+redis+springsecurity

思路 jwttoken不设置过期时间 redis管理过期时间&#xff0c;并且续签 redis中key"login:"userId, valuejwtUser 再次访问时&#xff0c;解析token中userId&#xff0c;并且根据过期时间自动续签JWT 实现登录认证 Token 自动续期方案 pom文件配置 <!--Redis--&…

XLSX json转文本流 json转文件

封装一个公共 xlsx.js import { read, utils, writeFile } from xlsx // 文本流转json // 入参&#xff1a;文本流 回调 入参{} export const readJsonFromFile (file, callBackFn, opt) > {const reader new FileReader()reader.readAsArrayBuffer(file)reader.onload …

vue原生实现element上传多张图片浏览删除

vue原生实现element上传多张图片浏览删除 <div class"updata-component" style"width:100%;"><div class"demo-upload-box clearfix"><div class"demo-upload-image-box" v-if"imageUrlArr && imageUrlAr…

点云从入门到精通技术详解100篇-点云特征学习模型及其在配准中的应用(续)

目录 基于局部邻域的点云特征学习模型 3.1引言 3.2自适应邻域选择算法

算法-动态规划-编辑距离

算法-动态规划-编辑距离 1 题目概述 1.1 题目出处 https://leetcode.cn/problems/longest-increasing-subsequence/ 1.2 题目描述 2 动态规划 2.1 思路 dp[i][j] 表示 word1[0,i) 变换为 word2[0,j)的最少步数&#xff0c;那么转移表达式&#xff1a; i和j上的字符相同时…

[网鼎杯 2018]Comment git泄露 / 恢复 二次注入 .DS_Store bash_history文件查看

首先我们看到账号密码有提示了 我们bp爆破一下 我首先对数字爆破 因为全字符的话太多了 爆出来了哦 所以账号密码也出来了 zhangwei zhangwei666 没有什么用啊 扫一下吧 有git git泄露 那泄露看看 真有 <?php include "mysql.php"; session_start(); if(…

子层连接结构

目录 1、子层连接结构介绍 2、子层连接结构 3、代码实现 1、子层连接结构介绍 输入到每个子层以及规范化层的过程中&#xff0c;还使用了残差连接&#xff08;跳跃连接&#xff09;&#xff0c;因此我们把这一部分整体结构叫子层连接&#xff08;代表子层及其连接结构&#xf…

常见Http请求形式

一、请求参数的类型 我们在做boot项目时&#xff0c;常常会向接口发起请求&#xff0c;有些请求需要附带一些参数&#xff0c;比如说分页查询&#xff0c;就需要带上pageNum(当前页)和pageSize(页面大小)等参数 有两种方式可以传递这样的参数 query类型&#xff0c;参数通过…

Spring面试题

一、Spring面试题 1、Bean的生命周期 1.调用bean的构造方法创建Bean 2.通过反射调用Set方法设 bean的属性 3.如果Bean 实现了实现了BeanNameAware接口&#xff0c;Spring将调用setBeanName()&#xff0c;设置 Bean的name 4.如果Bean实现了BeanFactoryAware接口&#xff0c…

Linux命令(100)之sz

linux命令之sz 1.sz介绍 linux命令sz是用来把文件从Linux平台下载到Windows上 2.sz用法 sz [参数] file sz参数 参数说明-b使用binary的方式下载&#xff0c;不解释字符为ascii-y相同文件名&#xff0c;覆盖-E相同文件名&#xff0c;不会将其覆盖&#xff0c;而是会在所上传…

数据结构 - 二叉树

递归实现前中后序遍历 #include<stdio.h> #include<stdlib.h>#define TElemType inttypedef struct BiTNode{TElemType data;struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; BiTNode root;void visit(TElemType& e){printf("%d",e); }void Pre…

iPhone 15分辨率,屏幕尺寸,PPI 详细数据对比 iPhone 15 Plus、iPhone 15 Pro、iPhone 15 Pro Max

史上最全iPhone 机型分辨率&#xff0c;屏幕尺寸&#xff0c;PPI详细数据&#xff01;已更新到iPhone 15系列&#xff01; 点击放大查看高清图 &#xff01;