SpringCloud微服务面试

本文探讨了Eureka作为微服务注册中心的现状,尽管1.0已不维护,但因其稳定性仍被广泛使用。Nacos作为替代品,市场占有率较低。在技术选型上,Zuul和Gateway作为服务网关各有优势,Zuul基于Tomcat,适合CPU密集型任务,而Gateway基于WebFlux和Netty,提供更高性能。选择取决于具体场景和需求。
摘要由CSDN通过智能技术生成


一、

在这里插入图片描述
Dubbo缺点语言绑定Java。
SpringCloud具有语言扩展性,也有不错的性能,做的后端架构,对于网络传输性能要求不是特别高。

Eureka1.0已经不维护闭源了,那么注册中心这块的微服务可以用什么?

很多公司还会使用Eureka,理由:他足够健壮,足够稳定。1.0在民间还在更新维护,市场占有率太大,有很多程序员去贡献代码,非常成熟,出任何问题,在网上都能找到解决方案,SpringCloud2020版唯一留下的Netflix的框架就是Eureka。
Nacos?Nacos出了问题有可能找不到,他的市场占有率不够高,以云原生为基础诞生的,在阿里云上跑的东西。用Eureka是搞自己的云服务。阿里公布的nacos和rocketmq都不是商业版,是阉割版的。
在这里插入图片描述
在这里插入图片描述

zuul 和 Gateway之间的技术选型怎么理解?

zuul是Netflix提供的框架,实现的是服务的网关,网管是接入接受请求,然后转发到服务上,具体找哪个服务,给指引方向的。用户请求打到网关上,网关会携带这你的请求转发给后端,后端处理完把数据拉回来,再返回给用户,用户和服务不互联,这样保证了后端的安全性,在网关层就可以过滤筛选不合法的请求。

Gateway基于WebFlux框架实现,而WebFlux底层使用了高性能ProjectReactor Rxjava模式通信框架Netty。
服务网关在微服务中的使用。
在这里插入图片描述
maven聚合项目
在这里插入图片描述
微服务中的服务网关和单机项目的Controller挺像的。

在这里插入图片描述
在这里插入图片描述

技术难度 1 4 5
性能 1 3 5
zuul 1.x zuul 2.x Gateway
Tomcat Tomcat Tomcat/Netty
阻塞式 响应式 响应式
Filter servlet3.x servlet3.x/projectRector RxJava2

1.0效率低并发不高,2.0 3.0可以充分利用资源,如果要是用就要有载体,载体就是线程。

tomcat在servlet2.x的执行流程
dps = DispatchServlet
在这里插入图片描述
阻塞式,一个请求对应一个线程,出不来201个,当线程池里面没有了,就进入了响应策略,是放弃还是等待。。。

响应式在这里插入图片描述
在这里插入图片描述

netty和tomcat哪个性能好一些,看场景,IO密集型返回的都是一些数据,增删改查,服务里面计算少,只是数据的搬运工用响应式。如果计算比较多,消耗CPU,对于消耗CPU的请求不想网站请求,像计算请求,生成去年到今年所有数据关联的数据项,交集,在业务逻辑里面有很多计算,计算密集型用zuul 1.0版本效率不会滴,里面每个线程都是跑满了,异步请求是为了从数据库拉数据时进入等待状态,跨节点这个等待期间线程没有事情办,所以为了让线程不闲着,就采用异步请求,请求回来线程检测到就通知一下。
不是什么时候都需要异步的。

二、

总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值