从SpringCloud看一个微服务框架的「五脏六腑」(转)加肥猫咪

SpringCloud是一个基于SpringBoot实现的微服务框架,它包含了实现微服务架构所需的各种组件。

本文将从SpringCloud出发,分两小节讲述微服务框架的「五脏六腑」:

「服务架构」

顺着上一节的思路,从最简单、最核心的问题出发,假设服务A要调用服务B,会有什么问题?

这两个是最核心的问题,也是任何微服务框架首要解决的两个问题。

为了解决第一个问题SpringCloud提供了Eureka、Zookeeper、CloudFoundry、Consul等服务治理框架的集成。它们的工作模式是将所有的微服务注册到一个Server上,然后通过心跳进行服务健康监测。这样服务A调用B时可以从注册中心拿到可用的服务B的地址、端口进行调用。

第二个服务调用有人可能认为就是一个简单的HTTP或者RPC调用,不是什么问题。但是在分布式的场景下,服务调用需要考虑的因素会更多。比如一个服务有多个实例,此时请求进来了交给谁处理,请求的负载怎么平衡到各个实例,都是比较棘手的问题。

SpringCloud提供了两种服务调用的方式:一种是Ribbon+restTemplate,另一种是Feign。其中Ribbon是基于HTTP和TCP客户端的负载均衡器,restTemplate是Spring提供的Restful远程调用的模板,两者结合就可以达到远程调用的负载均衡。

既然两个问题都得到了解决,我们就用一个例子来进一步说明一下,例子包含了微服务中最基本的三个角色(注册中心、服务提供者、服务消费者):

注册中心

注解@EnableEurekaServer表示该SpringBoot应用是一个注册中心。

@EnableEurekaServer@SpringBootApplicationpublicclassEurekaserverApplication{publicstaticvoidmain(String[]args){SpringApplication.run(EurekaserverApplication.class,args);}}eureka.client.registerWithEureka:false和fetchRegistry:false来表明自己是一个eurekaserver。

注解@EnableEurekaClient表示他是一个Eureka客户端,它会在注册中心注册自己。

注解@RestController表示这是一个控制器,@RequestMapping("/hello")表示匹配到请求'/hello'时会调用该方法进行响应。

「心脏」的依托

接下来我们要进一步思考的是「五脏六腑」中其余的部分,因为少了它们人也是活不久的。下面通过一个问题或需求对应一个组件的方式进行介绍。

服务“雪崩”与断路器

由于网络等原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗殆尽,导致服务瘫痪。

由于服务与服务之间存在依赖,故障会在调用链路上传播,导致整个微服务系统崩溃,这就是服务故障的“雪崩”效应。

为了解决这个问题,SpringCloud提供了对Hystrix断路器的集成,当服务调用失败的频次达到一定阈值,断路器将被开启,降级的策略可以开发者制定,一般是返回一个固定值。这样就能够避免连锁故障。

此外SpringCloud还提供HystrixDashboard和HystrixTurbine,帮助我们进行监控和聚合监控。

服务暴露与路由网关

微服务中的服务很多,直接暴露给用户一是不安全,二是对用户不友好。因此在微服务和面向服务的架构中,通常会有一个路由网关的角色,来负责路由转发和过滤。对应到SpringCloud中有Zuul和Gateway两个组件可用。什么是服务网关?

路由网关接收了所有的用户请求,有着很高的负载,因此它通常是一个集群。用户的请求会先经过一层负载均衡被发到路由网关。

服务配置与配置中心

在微服务应用中,服务数量巨多,而每个服务不同环境都有着不同的配置,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。需要注意的是此处的配置与注册中心注册的配置信息是两个概念,此处的配置是服务本身的一些配置信息,如下图:

SpringCloud提供了SpringCloudConfig组件,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中,帮助我们管理服务的配置信息。

信息同步与消息总线

前一个问题讲到了每个服务都有一些配置信息,那么配置信息更新了我们该怎么办,手动一个个去更新?当然不是,SpringCloud提供了SpringCloudBus组件,它通过轻量消息代理连接各个分布的节点。当配置信息更新的时候,我们只要更新一个节点的配置,这个更新就会被广播到这个分布式系统中。

问题定位与链路追踪

在微服务系统中,服务之间可以相互调用,因此我们一个请求可能会一条调用链,而整个系统会存在一张调用网,其中任意一个服务调用失败或网络超时都可能导致整个请求失败。因为调用关系的复杂,这给问题的定位造成了极大的困难,这也是必须提供服务链路追踪的原因。

SpringCloud为我们提供了SpringCloudSleuth组件,它能够跟进一个请求到底有哪些服务参与,参与的顺序是怎样的,从而达到每个请求的步骤清晰可见。借助服务链路追踪,我们可以快速定位问题。

至此,SpringCloud的所有基础组件都介绍完了。但是目前所有的组件介绍都是分散的,它们组合起来,完整的样子是什么样的?如下图:

偷懒偷了张图,图中漏掉了ConfigServer和链路追踪组件。但是结合上文的介绍,我们大致可以脑补出这两个东西在图中的位置。ConfigServer是一个与所有服务相连的服务集群,链路追踪组件则集成在每个服务中。

小结

服务治理为心脏,路由网关、消息中心、断路器、链路追踪、配置中心等为依托,构造了整个微服务框架的「五脏六腑」。

THE END
1.男性生殖器解剖图图片素材编号23490811图行天下为您提供男性生殖器解剖图图片素材,包含男性生殖器解剖图、男性生殖器、解剖示意图、前列腺、生殖器、解剖图、医院解剖图、男性解剖图、女性解剖图、五脏六腑图、生殖器解剖图、医院挂图、医院挂画、医院宣传、设计、广告设计、CDR、设计、广告设计、广告设计、CDRhttps://www.photophoto.cn/tupian/nanxingshengzhiqijiepoutu-23490811.html
2.专题08记叙文阅读(解析版+原卷版)备战2025年中考语文真题专项...气脉贯通和精血涌跃之际,待剃匠从容收刀,受用者一个喷嚏天昏地暗,尽吐五脏六腑之浊气。⑥(B)何...狗尾巴和猫咪的共同点,大概是身上都毛茸茸的,依此给一种穗子上布满绒毛的小草冠名,贴切又亲切。③我...68.请根据文章内容完成思维导图。69.文章第⑤段的景物描写有什么作用?请从内容、结构两方面简要分析...http://zy.21cnjy.com/21198317
3.五脏六腑属于哪个阴阳表里"五脏六腑互为表里”,我早就觉得"互为”不妥。 本来就是"五脏六腑都有表里”,即:腑为表,脏为里,如:胃为表、脾为里;大肠为表丶肺为里;小肠为表丶心为里;膀胱为表、肾为里;肝为里、胆为表(又是奇恒之腑)。 怎么可互为表里?比如父子,可以互为父子吗? 表里,就是内脏三焦,身体深处的畸形之腑的病变...https://edu.iask.sina.com.cn/jy/1HB8E7770D.html
4.#中医建议像小猫一样生活##猫咪自带4个...来自山西青年报八段锦、五禽戏、太极拳等传统养生术集合了多种拉伸动作,可以适度练习。爱晒暖猫虽然是恒温动物,但特别喜欢晒太阳。中医理论中,多晒太阳有助调整五脏六腑功能,改善气血,排出体内寒湿。气血一旦运行通畅,体内沉积的“废物”就无处藏身。建议勤晒太阳,千万不要为了防晒一点光都不见。 动图 ...https://weibo.com/1789594967/OtI7D1TUE
5.起点新书上架首订(202305)起点图100 [玄幻]长生从强化五脏六腑开始 1359 来一块钱月光 Lv.1 1.57w 1531 11.6 20.83w 05-19 101 [仙侠]长生:从大周神朝开始 1355 三喵道尊 Lv.4...1 猫咪吃鲸鱼 Lv.1 42 2 42.0 5.37w 05-12 1233 [古代言情]长剑与君舞 1 婔玥 Lv.1 3 1 3.0 13.34w 05-13 1234 [玄幻]我能看见长生进度 1...https://www.qidiantu.com/shouding/2023-05
1.五脏六腑图片五脏六腑动态图五脏六腑表情包gif动图下载SOOGIF为您提供五脏六腑动图大全,这里可以找到全部的五脏六腑gif动态图片,以及五脏六腑动图表情包供您下载使用,本次SOOGIF共为您找到9325张关于五脏六腑的动图内容。https://www.soogif.com/gif/700083-2-0-0.html
2.世界奇闻大全集动物世界的奇闻怪事在线免费阅读在幼体未发育成熟前,在其食物中添加相应激素,可诱导其幼体发育成类似蝾螈的个体,生理结构、功能及其...这个庞然大物有长长的脖子,小小的脑袋,长着4个很大的鳍和很大很大的肚子,但腹部已经空了,五脏六腑都...几年前,他们一家发现了一窝比正常猫咪更小的小猫,他们称其为“袖珍猫”,而这只双脸猫正是一只“...https://fanqienovel.com/reader/7274906562424998968
3.猫咪,你知道的太多了夏陌不知道要回复什么,却如同吞下一枚滚烫的芝麻汤圆,甜蜜热乎的馅料迸射在她的五脏六腑,温暖,甜腻。 第二天突然接到董立的电话,夏陌听董立抱怨很久不打电话给他,还要转零花钱给夏陌….她听着听着居然走了神,不知如何接下去,董立仿佛感觉到了什么,突然住了声。 https://www.jianshu.com/p/0d599aef54aa
4.小猫摔地后抽搐怎么办(猫咪从高处摔下来抽搐咋办)如果是摔了也有可能伤到了五脏六腑,可轻可重建议你现在就静静的观察他如果过两三天严重了就去就医;很多病都会引起痉挛,但痉挛本身根少会致命,所以不要因为痉挛而http://m.boqii.com/article/513984.html
5.《团宠小猫咪慌了》玖宝^第1章^最新更新:202407下一秒五脏六腑传来的剧痛让他差点栽回去! 可唐茸根本顾及不了这些,他的瞳孔在刹那间紧缩成针,目瞪口呆的望着眼前天翻地覆的世界。 不在顶楼天台,没有灯火阑珊的大都市。入目所见是山是水,是荒郊野岭! 唐茸虚弱的腿一哆嗦,差点跪了。 不祥的预感袭上心头,唐茸不顾一切的、里倒歪斜的冲到河边,照着水面一...https://www.jjwxc.net/onebook.php?novelid=6444535&chapterid=1
6.猫咪拉稀的原因(精选7篇)篇1:猫咪拉稀的原因 1、消化不良 小猫的肠胃很娇嫩,因为消化系统很娇嫩,而且还缺少好多消化酶,在小猫三个月以下的时候吃罐头或单纯的肉类是很容易引起消化不良的。消化不好就会拉稀,要是不管他就会越拉越稀,造成脱水,那会是很危险的。所以各位猫爸猫妈请一定要仔细对待小猫的这种状况,在确信没有染上什么病的前提...https://www.360wenmi.com/f/filegwwb32dj.html
7.形容生气的样子的成语额头上依稀可辨的皱纹,大概是他年龄不大却阅历较多,涉猎较广的证实。眉宇间,细长的眼睛布满了生命的生机和诱人的魅力,目光时而犀利如 X 射线,好像能看破人的五脏六腑;时而情如水,好像积累了全天下的温情。适中的鼻子犹如一块凸出的磐石,而左边的一颗形似顿号的黑痣,恰...https://www.xdyy8.com/wenxue/zuowen/83065.html
8.睡前小故事(通用15则)小猫咪穿鞋子的故事 小猫咪看见人们穿着鞋子走来走去,很羡慕。他想:“我怎么没有鞋子呢?”小猫咪回到...咬掉了一大块,那甜甜的,香香的奶油在口中香味四溢,那香味顺着喉咙往下溜到肚子里,在五脏六腑行走着...“你想小家伙会去放鹅吗?现在的小孩可没有那么听话,他们做事只图新鲜,就像那种小孩,本让他去放牛,...https://www.jy135.com/ertonggushi/shuiqian/1567103.html
9.氨糖调理五脏六腑第5页2024-10-27#猫能频繁吃益生菌么#益生菌 蜂蜜露#猫咪杆菌益生菌的作用 最新天津益生菌的健康之旅助力肠道平衡与提升 在现代生活中,越来越多的人开始关注...中年女性的健康之道:益生元与益生菌的完美结合 在现代社会,随着生活节奏的加快和饮食结构的变化,中年女性的健康问题日益受到关注。许多女性在这个阶段不仅...https://www.centralsolomon.com/tags-5133_5.html