SpringCloud 五大核心组件,一篇就能搞定!
程序员的成长之路
共 3489字,需浏览 7分钟
·
2022-05-15 16:50
阅读本文大概需要 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......等技术栈!
⬇戳阅读原文领取! 朕已阅
评论