文章目录
- 一、
- Eureka1.0已经不维护闭源了,那么注册中心这块的微服务可以用什么?
- zuul 和 Gateway之间的技术选型怎么理解?
- 二、
- 总结
一、
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版本效率不会滴,里面每个线程都是跑满了,异步请求是为了从数据库拉数据时进入等待状态,跨节点这个等待期间线程没有事情办,所以为了让线程不闲着,就采用异步请求,请求回来线程检测到就通知一下。
不是什么时候都需要异步的。
二、
总结