当前位置: 首页 > news >正文

SpringCloud Alibaba核心知识点

Spring Cloud Alibaba 是阿里巴巴开源的一套微服务解决方案,与 Spring Cloud 生态深度集成。以下是其主要组件及其功能:

Nacos

  • 服务注册与发现:支持动态服务注册、健康监测及DNS-Based服务发现。
  • 配置中心:提供分布式配置管理,支持配置动态更新和版本管理。
  • 特性:AP/CP模式切换、权重路由、元数据管理。
  • AP模式‌:适用于‌服务注册与发现,‌场景如微服务架构中允许短暂数据不一致但需保障服务持续可用
  • CP模式‌:适用于‌配置管理‌场景,如金融、支付系统等对数据一致性要求高的领域

心跳机制核心原理

Nacos采用两种健康检查机制,对应不同类型的服务实例:

  • 临时实例(Ephemeral)‌:
    • 客户端默认每5秒向Nacos服务端发送心跳包。‌‌
    • 服务端若15秒未收到心跳,将实例标记为不健康状态;30秒未收到则直接剔除实例。‌‌
  • 持久实例(Persistent)‌:
    • 服务端主动发起健康探测(默认20秒间隔),通过HTTP请求验证实例可用性。‌‌
    • 探测失败后标记为不健康,但不会立即删除,需人工干预或持续失败后才移除。‌‌
spring:cloud:nacos:discovery:server-addr: 127.0.0.1:8848config:server-addr: 127.0.0.1:8848file-extension: yaml
Sentinel
  • 流量控制:支持QPS、线程数、熔断降级等规则配置。
  • 熔断降级:通过慢调用比例、异常比例触发熔断。
  • 热点防护:针对高频参数自动限流。
Seata
  • 分布式事务:提供AT、TCC、SAGA、XA模式。
  • 核心机制:全局锁+分支事务协调,保证数据一致性。
Dubbo

OpenFeign

  • RPC通信:高性能Java RPC框架,支持多种协议(如Dubbo、HTTP)。
  • 集成方式:通过@DubboTransported注解与Spring Cloud OpenFeign兼容。

OpenFeign 是一个声明式的 HTTP 客户端,用于简化微服务之间的 RESTful API 调用。通过注解配置接口,自动生成实现类,减少手动编写 HTTP 请求代码的工作量。

核心特性

  • 声明式 API 定义:通过 Java 接口和注解描述 HTTP 请求。
  • 集成负载均衡:默认与 Ribbon 结合实现客户端负载均衡。
  • 支持熔断降级:可与 Hystrix 或 Resilience4j 集成。
  • 编码解码灵活:支持 JSON、XML 等格式,默认使用 Spring 的 HttpMessageConverter
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

2. 启用 OpenFeign
在 Spring Boot 启动类添加 @EnableFeignClients 注解:

@SpringBootApplication
@EnableFeignClients
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

3. 定义 Feign 客户端接口

@FeignClient(name = "user-service", url = "http://localhost:8080")
public interface UserClient {@GetMapping("/users/{id}")User getUserById(@PathVariable("id") Long id);
}

@FeignClient

  • name/value:指定服务名称(用于服务发现)。
  • url:直接指定目标 URL(适用于非服务发现场景)。
  • fallback/fallbackFactory:定义熔断降级的实现类。

核心特性

  • 声明式 API 定义:通过 Java 接口和注解描述 HTTP 请求。
  • 集成负载均衡:默认与 Ribbon 结合实现客户端负载均衡。
  • 支持熔断降级:可与 Hystrix 或 Resilience4j 集成。
  • 编码解码灵活:支持 JSON、XML 等格式,默认使用 Spring 的 HttpMessageConverter

Dubbo采用 RPC协议 (如 Dubbo协议 、 Hessian协议 ),通过二进制传输实现高效通信,适合内部高频调用。OpenFeign基于 HTTP协议 ( RESTful风格 ),支持跨语言调用,适合跨服务通信。

Alibaba Cloud OSS
  • 对象存储:提供文件上传、下载、管理功能。
  • 集成方式:通过spring-cloud-starter-alicloud-oss自动化配置。

http://www.dtcms.com/a/348233.html

相关文章:

  • MIT 6.5840 (Spring, 2024) 通关指南——入门篇
  • 项目学习总结(4)
  • Java内存泄漏详解:检测、分析与预防策略
  • 大语言模型的自动驾驶 LMDrive/DriveVLM-Dual
  • 电动车运行原理与最新人工智能驾驶技术在电动车上的应用展望:从基础动力系统到L5级完全自动驾驶的技术深度解析
  • EndNote 2025 Mac 文献管理工具
  • Multitouch for mac 触控板手势增强软件
  • Multi-output Classification and Multi-label Classification|多输出分类和多标签分类
  • 跨语言文化的统一语义真理:存在性、形式化及其对自然语言处理(NLP)深层语义分析的影响
  • 什么是大模型的指令跟随
  • Preprocessing Model in MPC 3 - 基于同态加密的协议 - Over Fields 有限域
  • Python 列表:定义、操作、推导式与嵌套
  • 西门子 SCL 简单案例
  • 计算机视觉学习路线:从入门到进阶的完整指南
  • 最近遇到的几个JVM问题
  • java学习 + 一个向前端传流顺序不一致的一个解决思路
  • c++ 常用接口设计
  • C#_依赖注入(DI)
  • vulnhub-billu_b0x靶机渗透
  • HPA 数据库实用指南:解决科研文章逻辑衔接难题的实操教程
  • 05 线性代数【动手学深度学习v2】
  • 构建wezzer平台!
  • VirtualBox 中安装 Ubuntu 22.04
  • daily notes[5]
  • 计算机视觉与自然语言处理技术体系概述
  • 深度学习之第一课深度学习的入门
  • Go语言IDE安装与配置(VSCode)
  • VSCode远程开发实战:SSH连接服务器详解(附仙宫云平台示例)
  • Linux综合练习(dns,dhcp,nfs,web)
  • Spring Boot 中 @Controller与 @RestController的区别及 404 错误解析