SpringCloud 五大核心组件,一篇就能搞定!
程序员的成长之路
共 3489字,需浏览 7分钟
· 2022-05-15
阅读本文大概需要 3 分钟。
来自:https://blog.csdn.net/weixin_46115725/
一、首先看一张springCloud的图片:
二、简单介绍下什么是springCloud
三、为了方便理解假设一个业务场景
创建一个订单后,如果用户立刻支付了这个订单,我们需要将这个订单状态更新为(已经支付) 扣减相对应的商品库存 通知仓储中心,进行发货 给用户这次购物怎加相对应的积分
用户针对一个订单完成支付后,就回去找订单服务,更新订单状态 订单服务调用库存服务,完成相应的功能 订单服务调用仓储服务,完成相应的功能 订单服务调用积分服务,完成相应的功能
四、SpringCloud核心组件Eureka(类似于zookeeper)
Eurake客户端:负责将这个服务的信息注册到Eureka服务端中 Eureka服务端:相当于一个注册中心,里面有注册表,注册表中保存了各个服务所在的机器和端口号,可以通过Eureka服务端找到各个服务
五、SpringCloud核心组件:Feign(类似于dubbo)
首先,如果你对某个接口定义了 @FeignClient
注解,Feign就会针对这个接口创建一个动态代理接着你要是调用那个接口,本质就是会调用 Feign创建的动态代理,这是核心中的核心 Feign的动态代理会根据你在接口上的 @RequestMapping
等注解,来动态构造出你要请求的服务的地址最后针对这个地址,发起请求、解析响应
六、springCloud核心组件:Ribbon
七、SpringCloud的核心组件:Hystrix
八、SpringCloud核心组件:zull(类似于服务器端的nginx)
inventory-service
,并且部署在5台机器上,就算人家肯记住这一个,那你后台可有几百个服务的名称和地址呢?难不成人家请求一个,就得记住一个?哈哈哈九、简单总结
Eureka:服务启动的时候,服务上的Eureka客户端会把自身注册到Eureka服务端,并且可以通过Eureka服务端知道其他注册的服务 Ribbon:服务间发起请求的时候,服务消费者方基于Ribbon服务做到负载均衡,从服务提供者存储的多台机器中选择一台,如果一个服务只在一台机器上面,那就用不到Ribbon选择机器了,如果有多台机器,那就需要使用Ribbon选择之后再去使用 Feign:Feign使用的时候会集成Ribbon,Ribbon去Eureka服务端中找到服务提供者的所在的服务器信息,然后根据随机策略选择一个,拼接Url地址后发起请求 Hystrix:发起的请求是通过Hystrix的线程池去访问服务,不同的服务通过不同的线程池,实现了不同的服务调度隔离,如果服务出现故障,通过服务熔断,避免服务雪崩的问题 ,并且通过服务降级,保证可以手动实现服务正常功能 Zuul:如果前端调用后台系统,统一走zull网关进入,通过zull网关转发请求给对应的服务
推荐阅读:
内容包含Java基础、JavaWeb、MySQL性能优化、JVM、锁、百万并发、消息队列、高性能缓存、反射、Spring全家桶原理、微服务、Zookeeper......等技术栈!
⬇戳阅读原文领取! 朕已阅
评论
牛逼啊,几乎涵盖了SpringCloud所有操作
前言Spring Cloud Alibaba为分布式应用开发提供了一站式解决方案。它包含开发分布式应用程序所需的所有组件,可以轻松地使用Spring Cloud开发应用程序。使用Spring Cloud Alibaba,只需添加一些注解和少量配置,即可将Spring Cloud应用连接到Alibab
java团长
0
OpenUI:输入一段文字就能生成网!页!!
今天给大家介绍一个开源的 AI 网页生成工具:OpenUI!!!前言 在软件开发领域,用户界面(UI)的设计和构建确实是一个至关重要的环节。传统的 UI 开发需要设计师和开发人员紧密合作,通过反复的设计、修改和测试来达到理想的效果,这个过程往往耗时且成本较高。随着 AI 技术的发展,现在有越来越多的
前端技术江湖
0
面试官:在原生input上面使用v-model和组件上面使用有什么区别?
前言面试官:vue3的v-model都用过吧,来讲讲。粉丝:v-model其实就是一个语法糖,在编译时v-model会被编译成:modelValue属性和@update:modelValue事件。一般在子组件中定义一个名为modelValue的props来接收父组件v-model传递的值,然后当子组
高级前端进阶
0
一篇文章带你了解JavaScript作用域
点击上方“前端进阶学习交流”,进行关注回复“前端”即可获赠前端相关学习资料今日鸡汤杨家有女初长成,养在深闺人未识。在JavaScript中,对象和函数也是变量。在JavaScript中,作用域是你可以访问的变量、对象和函数的集合。JavaScript 有函数作用域: 这个作用域在函数内变化。一、本地
前端进阶学习交流
0
算法工程师的核心竞争力是什么?
点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达链接:https://www.zhihu.com/question/527696166编辑:深度学习与计算机视觉声明:仅做学术分享,侵删作者:赵俊博 Jakehttps://www.zhihu.com/question/52769
小白学视觉
10
Neo欢迎两位核心开发者加入,在区块链技术前沿领域持续探索
亲爱的Neo社区:我们很荣幸地宣布,两位区块链资深人士加入Neo核心开发团队:Anna Shaleva(Neo SPCC软件工程师)和vang1ong7ang(Lazynode研究员)。两位开发者是Neo的长期贡献者,并在区块链编程方面表现出了精湛的技术。核心开发者有权管理和更新Neo核心代码库,并
Neo智能经济
0
一篇文章带你了解JavaScript switch
点击上方“前端进阶学习交流”,进行关注回复“前端”即可获赠前端相关学习资料今日鸡汤舍身而取义者也!Switch是与if ... else ...相同的条件语句,不同之处在于switch语句允许根据值列表测试变量是否相等。switch 语句用于根据不同的条件执行不同的操作。一、Switch 语句使用s
前端进阶学习交流
0
通过写作,我是如何靠一篇文章,实现被动收入3万的 ?
大家好, 我是刘志军,以前是一名996程序员,现在自由职业,做独立开发和自媒体。今天跟大家分享一个案例, 我是如何靠一篇文章变现3万的。文章是去年7月写的,截止目前带给我的总收益是4470美元,按当前的汇率来算是32000多一点。每天带来的佣金收益大概有20美元属于真正的被动收入,用来补贴奶粉钱完全
python之禅
0