CSDN博主:【java_wxid】
CSDN博主:点击【Java廖志伟】
CSDN社区:点击【幕后大佬】
码云:点击【互联网Java工程师知识扫盲】
随笔 - 882,  文章 - 0,  评论 - 1,  阅读 - 51800

常用组件底层实现?

Eureka是微服务架构中的注册中心,专门负责服务的注册与发现。
服务中都有一个Eureka Client组件,这个组件专门负责将这个服务的信息注册到Eureka Server中。
Eureka Client告诉Eureka Server,自己在哪台机器上,监听着哪个端口。
而Eureka Server是一个注册中心,里面有一个注册表,保存了各服务所在的机器和端口号。
Eureka Client把这些相关信息从Eureka Server的注册表中拉取到自己本地缓存起来

Feign直接就是用注解定义一个 FeignClient接口,然后调用那个接口就可以了,
Feign Client会在底层根据你的注解,跟你指定的服务建立连接、构造请求、发起靕求、获取响应、解析响应。

Ribbon每次请求时Ribbon默认使用轮询算法进行负载均衡选择一台机器,均匀的把请求分发到各个机器上。
Eureka Client里获取到对应的服务注册表,也就知道了所有的服务都部署在了哪些机器上,在监听哪些端口号。
然后Ribbon就可以使用默认的Round Robin算法,从中选择一台机器,Feign就会针对这台机器,构造并发起请求。

Hystrix是隔离、熔断以及降级的一个框架。Hystrix会搞很多个小小的线程池,比如订单服务请求库存服务是一个线程池,
请求仓储服务是一个线程池,请求积分服务是一个线程池。每个线程池里的线程就仅仅用于请求那个服务。
订单服务可以正常调用库存服务扣减库存,调用仓储服务通知发货。积分服务挂了,直接对积分服务熔断,比如在5分钟内请求积分服务直接就返回了,不要去走网络请求卡住几秒钟,这个过程,就是

posted on   我是廖志伟  阅读(8)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

南北踏尘
点击右上角即可分享
微信分享提示