Spring Cloud 常用各个组件详解及实现原理(附加源码+实现逻辑图)

简介: Spring Cloud 常用各个组件详解及实现原理(附加源码+实现逻辑图)


Eureka

注册中心组件,主要是用来做服务注册和服务发现的
每个服务在创建时,指定注册地址(往哪个Eureka中进行注册),又做了服务集群操作,当某个服务器挂了之后,不会影响其它服务的正常使用

Ribbon

是客户端实现负载均衡的远程调用组件起到一个中间的作用
实现方式:
  第一种是:ribbon和RestTemplate相结合使用,请求路径传给RestTemlate,利用负载均衡轮训算法完成调用
  第二种是:ribbon和OpenFeign相结合使用(发起一个远程调用,同时完成负载均衡的任务)
实现原理:
  1.通过用 Eureka-Client来做服务发现
  2.通过RestTemplate来完成服务调用上面和eureka结合,下面和IRule,实现负载均衡eureka服务发现

Open Feign

Open Feign远程调用组件
Feign集成了ribbon(不懂的可以去看下ribbon实现原理,这里直接上图解)
实现方式:
  A服务Controller开启@EnableFeignClients,在A服务接口类中添加注解@FeignClient(value = "order-service")指定调用的服务名称,参数格式要求下方图中查看

Gateway

网关组件:根据微服务名称,创建动态路进行转发,实现动态路由功能
动态路由优点:
当服务注册时,不需要重启服务端,动态去做负载均衡、服务发现,只需要加上服务名称即可
Geteway 的核心逻辑:路由转发+执行过滤器链
Gateway是web网关,处理的是Http请求

Hystrix

保护服务组件:保护微服务不雪崩,提供了熔断功能,能够阻止分布式系统中联动故障
hystrix通常和Openfeign和ribbon一起使用
hystrix本质是:代理feign的请求,才能完成熔断效果
hystrix实现原理:
  指定熔断的类,注解:@FeignClient(value = "rent-car-service",fallback = CustomerRentFeignHystrix.class)

定义熔断类

调用熔断类

下面说下断路器实现流程,先来说下为什么要使用断路器?

在微服务分布式架构开发中,会有很多独立的服务,当A服务去调用B服务时,一次发现没有反应,当A服务疯狂调用时,
B服务还是没有响应,这是猜测可能是B服务挂了,断路器作用就是当A要访问B服务时,拦截器知道B服务当前的一个状态,
正常继续使用,如果挂了直接return,类同于Hystrix

Nacos-feign

动态服务发现,配置管理和服务管理的平台
注册中心和配置文件中心
有登录验证
可以通过命名空间的形式进行调用服务,避免Nacos中出现重名的服务名称
实现原理:
  1. nacos-client-a 通过feign结合ribbon发起远程调用info接口
  2. @EnableDiscoveryClient // 开启服务发现客户端()
  3. @FeignClient(value = "user-service")(要调用对象的服务名称)

向Nacos中注册服务时,需指定nacos地址和用户名和密码以及命名空间、组

Nacos-配置中心

默认读取nacos配置中心文件 yml配置

Nginx和GeteWay区别

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
监控 安全 Java
Spring AOP实现原理
本内容主要介绍了Spring AOP的核心概念、实现机制及代理生成流程。涵盖切面(Aspect)、连接点(Join Point)、通知(Advice)、切点(Pointcut)等关键概念,解析了JDK动态代理与CGLIB代理的原理及对比,并深入探讨了通知执行链路和责任链模式的应用。同时,详细分析了AspectJ注解驱动的AOP解析过程,包括切面识别、切点表达式匹配及通知适配为Advice的机制,帮助理解Spring AOP的工作原理与实现细节。
1678 13
|
负载均衡 Java Nacos
Spring Cloud五大组件
Spring Cloud五大组件
|
前端开发 Java 物联网
智慧班牌源码,采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署
智慧班牌系统是一款基于信息化与物联网技术的校园管理工具,集成电子屏显示、人脸识别及数据交互功能,实现班级信息展示、智能考勤与家校互通。系统采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署与私有化定制。核心功能涵盖信息发布、考勤管理、教务处理及数据分析,助力校园文化建设与教学优化。其综合性和可扩展性有效打破数据孤岛,提升交互体验并降低管理成本,适用于日常教学、考试管理和应急场景,为智慧校园建设提供全面解决方案。
760 70
|
11月前
|
设计模式 Java 开发者
如何快速上手【Spring AOP】?从动态代理到源码剖析(下篇)
Spring AOP的实现本质上依赖于代理模式这一经典设计模式。代理模式通过引入代理对象作为目标对象的中间层,实现了对目标对象访问的控制与增强,其核心价值在于解耦核心业务逻辑与横切关注点。在框架设计中,这种模式广泛用于实现功能扩展(如远程调用、延迟加载)、行为拦截(如权限校验、异常处理)等场景,为系统提供了更高的灵活性和可维护性。
1429 0
|
负载均衡 前端开发 Java
SpringCloud调用组件Feign
本文深入探讨微服务Spring体系中的Feign组件。Feign是一个声明式Web服务客户端,支持注解、编码器/解码器,与Spring MVC注解兼容,并集成Eureka、负载均衡等功能。文章详细介绍了SpringCloud整合Feign的步骤,包括依赖引入、客户端启用、接口创建及调用示例。同时,还涵盖了Feign的核心配置,如超时设置、拦截器实现(Basic认证与自定义)和日志级别调整。最后,总结了`@FeignClient`常用属性,帮助开发者更好地理解和使用Feign进行微服务间通信。
1126 1
|
存储 监控 数据可视化
SaaS云计算技术的智慧工地源码,基于Java+Spring Cloud框架开发
智慧工地源码基于微服务+Java+Spring Cloud +UniApp +MySql架构,利用传感器、监控摄像头、AI、大数据等技术,实现施工现场的实时监测、数据分析与智能决策。平台涵盖人员、车辆、视频监控、施工质量、设备、环境和能耗管理七大维度,提供可视化管理、智能化报警、移动智能办公及分布计算存储等功能,全面提升工地的安全性、效率和质量。
395 0
|
Dubbo Java 应用服务中间件
深入了解Spring Cloud Alibaba Dubbo
在现代分布式系统开发中,构建高性能、可伸缩性和弹性的微服务架构变得越来越重要。Spring Cloud Alibaba Dubbo(简称Dubbo)是一个开源的分布式服务框架,可以帮助开发者构建强大的微服务架构,具备负载均衡、服务治理、远程调用等强大功能。本文将深入介绍Spring Cloud Alibaba Dubbo,帮助你理解它的核心概念、工作原理以及如何在你的项目中使用它。
|
Kubernetes Java 微服务
Spring Boot 单体应用一键升级成 Spring Cloud Alibaba(1)
Spring Boot 单体应用一键升级成 Spring Cloud Alibaba(1)
378 0
Spring Boot 单体应用一键升级成 Spring Cloud Alibaba(1)
|
Java 中间件 开发者
Spring Cloud Alibaba
【1月更文挑战第27天】【1月更文挑战第127篇】Spring Cloud Alibaba
340 1

热门文章

最新文章