Java技术栈相关技术笔记索引

微服务 Spring Cloud Spring Cloud Alibaba

June 14, 2025 · 1 min · 6 words · Rex

Spring Cloud Alibaba 中间件

🔗 Spring官方介绍 [⚠️Spring官方对Spring Cloud Alibaba的更新不及时] 🔗 Spring Cloud Alibaba官网 📝 代码记录 Nacos(服务注册与发现) Nacos(Dynamic Naming and Configuration Service, Nacos),一个易于构建 Al Agent 应用的动态服务发现、配置管理和AI智能体管理平台。 Nacos = Eureka + Config + Bus = Spring Cloud Consul Nacos官网 组件名 语言 CAP 服务健康检查 对外暴露接口 Spring Cloud集成 Eureka Java AP 可配支持 HTTP 已集成 Consul Go CP 支持 HTTP/DNS 已集成 Zookeeper Java CP 支持 客户端 已集成 Nacos Java AP 支持 客户端 已集成 Nacos 在阿里巴巴内部有超过 10 万的实例运行,已经过了类似双十一等各种大型流量的考验,Nacos默认是AP模式, 但也可以调整切换为CP,一般用默认AP即可。 下载与安装...

June 14, 2025 · 1 min · 186 words · Rex

Spring Cloud 原生中间件

📝 代码记录 Consul(服务注册与发现 + 分布式配置管理) 拥有服务治理功能,实现微服务之间的动态注册与发现 ❌不在使用Eureka:1. 停更进维 2. 注册中心独立且和微服务功能解耦 Consul官网 Spring官方介绍 三个注册中心区别 组件名 语言 CAP 服务健康检查 对外暴露接口 Spring Cloud集成 Eureka Java AP 可配支持 HTTP 已集成 Consul Go CP 支持 HTTP/DNS 已集成 Zookeeper Java CP 支持 客户端 已集成 Nacos Java AP 支持 客户端 已集成 CAP 一个分布式系统最多只能同时满足其中的两个属性。 Consistency: 强一致性,每次读取都能获取到最近一次成功写入的数据。 Availablity: 可用性,每次请求都会在有限时间内返回结果,无论结果是否为最新。 Partition tolerance: 分区容错性,系统在遇到网络分区(节点之间无法通信)时仍能继续运作。(必须有) 经典CAP: AP(Eurake):当网络分区出现后,为了保证可用性,系统B可以返回旧值,保证系统的可用性。 CP:当网络分区出现后,为了保证一致性,系统返回错误信息。 当数据出现不一致时,虽然A, B上的注册信息不完全相同,但每个Eureka节点依然能够正常对外提供服务,这会出现查询服务信息时如果请求A查不到,但请求B就能查到。如此保证了可用性但牺牲了一致性结论:违背了一致性C的要求,只满足可用性和分区容错,即AP 当网络分区出现后,为了保证一致性,就必须拒接请求,否则无法保证一致性,Consul 遵循CAP原理中的CP原则,保证了强一致性和分区容错性,且使用的是Raft算法,比zookeeper使用的Paxos算法更加简单。虽然保证了强一致性,但是可用性就相应下降了,例如服务注册的时间会稍长一些,因为 Consul 的 raft 协议要求必须过半数的节点都写入成功才认为注册成功 ;在leader挂掉了之后,重新选举出leader之前会导致Consul 服务不可用。结论:违背了可用性A的要求,只满足一致性和分区容错,即CP 使用 ./consul --version # 查看版本号 ....

June 9, 2025 · 2 min · 408 words · Rex