Spring Cloud内部运行原理

Spring Cloud原理详解 一、Spring Cloud核心组件:Eureka (1)Netflix Eureka 1)Eureka服务端:也称服务注册中心,同其他服务注册中心一样,支持高可用配置。如果Eureka以集群模式部署,当集群中有分片出现故障时,那么Eureka就转入自我保护模式。它允许在分片故障期间继续提供服务的发现和注册,当故障分片恢复运行时,集群中其他分片会把它们的状态再次同步回来 2)Eureka客户端:主... 阅读详情

        Spring Cloud作为云应用集中了很多组件包括:路由代理(Zuul)、注册与发现(Eureka and Client)、断路器(Hystrix)、消费服务者(Ribbon  and Feign)等,每个组件在架构都为实现不同的处理功能。看如下结构图:

 1、外部或者内部的非spring cloud项目都先通网关zuul然后从eureka server中获取可用列表服务。

2、从eureka server注册中心返回可用实例。

3、通过ribbon负载均衡分配可用节点。

4、ribbon选择可用的节点分配到后端具体的实例

5、hystrix断路器查看当前实例是否可用,dashboard监控实例状态信息,Turbine监控服务间的调用和熔断相关指标。

6、后端服务与服务之间都是通过feign通信,处理请求业务后返回到Eureka中心返回结果。

一、介绍下Eureka的缓存机制:

    对于日访问量达千万级的项目,Spring Cloud本身eureka client 每隔30秒就需要向eureka server发送心跳以检测当前服务是可用的,这本身就是非常消耗资源的,但这并不影响Spring Cloud强大的业务管理。其中主要依赖于两点:

1、Eureka Server设计精妙的注册表存储结构

   查看Eureka Server注册的源码 位于org\springframework\cloud\spring-cloud-netflix-eureka-server\2.1.0.RC3\spring-cloud-netflix-eureka-server-2.1.0.RC3.jar中:

    private final ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>> registry
            = new ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>>();

 其中registy定义的类型就是注册表里的核心结构。也是说eureka server是内存进行存储,在内存中定义了一个数据结构,各个服务的注册、服务下线、服务故障,全部会在内存里维护和更新这个注册表。eureka会直接从内存中读取注册列表。

ConcurrentHashMap中有两个参数一个String,另一个Lease<InstanceInfo>,String代表的也就是注册的程序名称,而Lease<InstanceInfo>代表是这个机器的ip地址、hostname以及端口号封装成一个对象到注册中心。

2、Eureka Server端优秀的多级缓存机制

   eureka为了避免同时读写内存数据结构造成的并发冲突问题采用了多级缓存的机制:

在拉取注册表时会首从readonlyCacheMap缓存里查找,如果没有再从readWriteCacheMap查找,要是还没有找到就直接从内存找。 当注册表发生改变时,直接修改内存中的注册表同时会过滤掉readWriteCacheMap,但readonlyCacheMap不会进行过滤还可以访问,当到达30秒过后后台线程发现readWriteCacheMap被清空了,同时也会清空readonlyCacheMap。当下个请求进行访问readonlyCacheMap和readWriteCacheMap会重新从最新的内存注册表过更新数据,又达到了一致性。

 

总结:Eureka同时通过纯内存的注册表,保证了所有的请求都可以在内存处理,确保了极高的性能,另外多级缓存机制,确保了不会针对内存数据结构发生频繁的读写并发冲突操作,进一步提升性能。

 

 

 

Spring Cloud OpenFeign 实现原理解析 文章目录1、什么是Feign2、什么是 Spring Cloud OpenFeign3、Feign 实现原理3.1、Feign.builder() 初始化构造器3.2、Feign.target() 生成代理对象3.3、如何解析 FeginClient 接口中定义的方法3.3.1、默认Contract 实现3.3.2、SpringMvcContract 基于Spring MVC的协议规范3.2、MethodHandler3.3、最终的HTTP请求4、Spring Cloud 中的 OpenFeign 1、什么 阅读详情

相关推荐

spring cloud gateway之限流原理、实战详解

1、限流的原理: 1.1、计算器算法 计数器算法采用计数器实现限流有点简单粗暴,一般我们会限制一秒钟的能够通过的请求数,比如限流qps为100,算法的实现思路就是从第一个请求进来开始计时,在接下去的1s内,每来一个请求,就把计数加1,如果累加的数字达到了100,那么后续的请求就会被全部拒绝。等到1s结束后,把计数恢复成0,重新开始计数。具体的实现可以是这样的:对于每次服务调用,可以通过Atomic...

SuperBins的博客 2912

【Spring Cloud原理详解】

Spring Cloud通过集成各种微服务架构的组件,实现了微服务架构中常见的功能,帮助开发人员快速构建分布式系统。它的核心原理包括服务注册与发现、负载均衡、断路器和配置管理等,通过这些原理的实现,可以提高系统的可靠性、可用性和扩展性。

Shy_Cloud的博客 646

Spring Cloud Alibaba系列教程——Spring Cloud Alibaba开篇

随着Spring Cloud Alibaba的发展,Spring Cloud Alibaba的相关组件逐渐的成熟,对于它的学习和研究已经是java开发人员的趋势。这篇博文主要内容是介绍什么是Spring Cloud Alibaba,Spring Cloud 与Spring Cloud Alibaba的关系,以及我们为什么要学习它,以及畅想Spring Cloud Alibaba未来发展。

努力+坚持,而且还很年轻 6655

超详细的SpringCloud底层原理

天天喊着微服务,微服务的,微服务怎么牛逼,微服务有多强大,学好微服务三天不用吃饭的那种?那我心里不禁一紧微服务到底是个啥?往下看!总有东西有点帮助! 先来个简单的介绍吧! SpringCloud框架 针对这个架构图我分层介绍一下: 1、是web服务器的选型,这个我选择的是nginx+keepalived,haproxy也是一个选择,但是haproxy在反向代理处理跨域访问的时候问题很多...

留下你的观点 2万+

简单了解SpringCloud运行原理

主要介绍了简单了解SpringCloud运行原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

CVPR 2027 投稿规划:基于近3年录用率与截稿周期的5步时间管理法

本文为计算机视觉研究者提供CVPR 2027投稿的完整规划指南,基于近三年录用率与截稿周期数据,提出五步时间管理法。涵盖选题策略、实验设计、论文写作、同行评审到最终提交的全流程优化,特别针对CVPR日益激烈的竞争环境(2024年投稿量达11532篇,录取率仅23.6%)提供实用解决方案,帮助研究者提升投稿成功率。

weixin_34079177的博客 1165

拜托,面试请不要再问我Spring Cloud底层原理

结合真实业务场景,通过大量的手绘图,通俗易懂的谈谈Spring Cloud微服务架构的底层原理。

石杉的架构笔记 6万+

JavaScript China城市联动

中国全城市的地址省,市,县 <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title></title> <script src="jquery.js"></script> <script src="json.js"></...

唯唯同学 2241

Spring Cloud的详细介绍及实现原理

什么是SpringCloud? SpirngCloud是一系列框架的有序集合,利用springboot开发便利性巧妙地简化了分布式系统的开发,对微服务框架又封装了多个开源组件,如: Eureka:各个服务启动时,Eureka Client都会将服务注册到Eureka Server,并且Eureka Client还可以反过来从Eureka Server拉取注册表,从而知道其他服务在哪里 总结一下: ...

m0_46437194的博客 1009

网站进行企业微信授权登录(附带代码超详细版)

企业微信的扫码登录官方文档 https://work.weixin.qq.com/api/doc/90000/90135/90988 企业微信扫码登录认证流程 上面是官方的图片,看上去比较复杂。因此我用直白简洁的语言梳理下流程。 1、首先在自己的网站上获取到企业微信登录的二维码(二维码怎么获取稍后再说,这里想象下你已经有了一个二维码) 2、你拿着手机扫描二维码,确认登录之后,页面就会自己进行重定向的跳转,跳转的url如何配置下面再讲,但是注意,这个重定向的url可以是内网地址 3、重定向到指

Gzf的博客 1万+

晟矽微MC32F7361定时器的使用案例说明

110所以TIMER0所用的频率是FCPU的1/64,也就是8/64MHZ. 为1/8MHZ。//io口下拉电阻 1:enable 0:disablea。//io口上拉电阻 1:enable 0:disable。//io口下拉电阻 1:enable 0:disable。//io口上拉电阻 1:enable 0:disable。//io口下拉电阻 1:enable 0:disable。//io口上拉电阻 1:enable 0:disable。

liyanfei123456的博客 1131

python spring框架_python 模拟Spring Cloud

一,简介Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格...

weixin_39997037的博客 754

小红书直播弹幕采集

本文主要介绍小红书直播间弹幕的采集,便于进行直播数据监控与直播数据进行分析。

tdl320721的博客 2543

spring cloud 框架原理

Spring Cloud 架构 我们从整体来看一下Spring Cloud主要的组件,以及它的访问流程 1、外部或者内部的非Spring Cloud项目都统一通过API网关(Zuul)来访问内部服务. 2、网关接收到请求后,从注册中心(Eureka)获取可用服务 3、由Ribbon进行均衡负载后,分发到后端的具体实例 4、微服务之间通过Feign进行通信处理业务 5、Hystrix...

800

【转录调控网络】代谢组学与其他组学的联合分析经典模式简介

多组学联合分析经典模式转录组学&代谢组学联合分析 转录组学&代谢组学联合分析 转录组是获得生物体内基因表达的重要方法,代谢组是生物体表型的基础和直接体现者。 转录组测序可以得到大量差异表达基因和调控代谢通路,但由于基因与表型之间很难之间关联,导致关键的信号通路难以确定,因此往往达不到预期的研究目的。代谢产物是生物体在内外调控下基因转录的最终结果,是生物体表型的物质基础。 在系统生物学研究时代,生物过程复杂多变,基因调控网络复杂。针对特定的生理、病理等表型进行研究,利用转录组的数据获得大量差异

小哲的博客 6195

高通平台蓝牙学习-- 基于WCN6750 Bluetooth 5.2的讲解

摘要:蓝牙5.2解决方案WCN6750具备多项先进特性:完全兼容5.2标准及ANT+协议,支持2Mbps高速BLE和长距离传输;采用射频集成方案,与WLAN共享天线并支持5G并发;内置功率放大器,支持Class1/2传输;提供双音频流和Slimbus接口优化。其HCI UART接口支持3.2Mbps速率,通过BlueZ协议栈实现蓝牙5.2功能,包括2Mbps模式和长距离传输,符合核心规范要求。(149字)

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 3万+

Spring Boot、Spring Cloud实现原理

Spring、Spring Boot、Spring Cloud实现原理

tszc95的博客 554

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Spring Cloud是怎么运行的?

导读 在之前的文章中给大家介绍了Spring Boot的基本运行原理(链接),收到了很多读者朋友们关于目前比较流行的微服务框架Spring Cloud的问题反馈。因此,在这篇文章中小码哥打算和大家一起通过梳理下Spring Cloud的运行原理来相对全面的了解下Spring Cloud。 随着微服务架构在越来越多的公司得到实践和应用,基于Spring Cloud的这一套微服务生态框架体系,也在这个...

无敌码农 1741

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Spring Cloud Feign原理详解

目录 1.什么是Feign? 2.Open Feign vs Spring Cloud Feign 2.1.OpenFeign 2.2.Spring Cloud Open Feign 3.Spring Cloud Feign 的使用 4.Spring Cloud Feign 的源码解析 1.什么是Feign? Feign 的初衷是:feign makes writing java...

时光钟摆 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Spring Cloud原理及应用

微服务是一种思想,最终需要技术架构去实现。它不是一种技术,而是一种架构思想Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施和微服务的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。

weixin_74866702的博客 1833

spring cloud-sleuth原理浅析

本文基于sleuth 2.2.5版本 sleuth是一个链路追踪工具,通过它在日志中打印的信息可以分析出一个服务的调用链条,也可以得出链条中每个服务的耗时,这为我们在实际生产中,分析超时服务,分析服务调用关系,做服务治理提供帮助。 第一次使用sleuth,虽说跟着网上的教程也可以运行出正确的结果,但是对于原理、更进一步的使用还是一头蒙。我就尝试着分析一下源代码,其代码量并不大,但是代码还真是难懂,看了一段时间源码,并从网上找了资料,只是对原理、部分类的作用有了一些了解,我通过本文做一下介绍。 文章目.

3060
上一篇: Spring Cloud相关配置管理
下一篇: 超简单的Spring Cloud+Mybatis+jsp集成
MiKuJack
博客等级 码龄11年 6粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值