大家好,关于feign和dubbo性能差距很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于openfeign为什么不能高并发的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
Service层和Dao层真的有必要每个类都加上接口吗
简单来说就是看情況。
主要看你项目:
变动情况以及架构人员项目情况比如,项目原来使用的hibernate,后续可能要切换为mybatis,那么dao就需要使用接口。这就不会影响上层代码的修改。
再比如,项目是个单体应用,任何代码的修改都需要重新编译整个项目,那可以不用接口。而如果项目是分模块编译部署的,那就可以使用接口解耦,假设dao有修改,只需要重新编译部署dao模块即可,不影响上层模块。
再来,如果项目组新手较多,可能简单的代码结构更适合。复杂项目结构的学习成本要高。
假如,项目进度很急,可以使用简单粗暴的方式先撸~
可以用经济学上的成本来解释原因。
经济学上的成本定义是:你做一件事,所放弃的其它事情中,价值最大的那件事的价值就是你做这件事的成本。
你使用接口的成本就是你不使用接口所花费的成本(包括后续的维护成本)。
如果项目变动多、模块部署、项目不急,那使用接口的成本就低于不使用接口的成本,虽然早期可能不用接口看起来更简单;反之,则不用接口的成本低,甚至框架都可以不使用~
毕竟工具是为了提高效率的,何必和自己过不去呢!
dubbo和openfeign的区别
一、相同点
Dubbo与Feign都依赖注册中心、负载均衡。
二、区别
1、协议
Dubbo:
支持多传输协议(Dubbo、Rmi、http、redis等等),可以根据业务场景选择最佳的方式。非常灵活。
默认的Dubbo协议:利用Netty,TCP传输,单一、异步、长连接,适合数据量小、高并发和服务提供者远远少于消费者的场景。
Feign:
基于Http传输协议,短连接,不适合高并发的访问。
2、负载均衡
Dubbo:
支持4种算法(随机、轮询、活跃度、Hash一致性),而且算法里面引入权重的概念。
配置的形式不仅支持代码配置,还支持Dubbo控制台灵活动态配置。
负载均衡的算法可以精准到某个服务接口的某个方法。
Feign:
只支持N种策略:轮询、随机、ResponseTime加权。
负载均衡算法是Client级别的。
3、容错策略
Dubbo:
支持多种容错策略:failover、failfast、brodecast、forking等,也引入了retry次数、timeout等配置参数。
Feign:
利用熔断机制来实现容错的,处理的方式不一样。
好了,文章到这里就结束啦,如果本次分享的feign和dubbo性能差距和openfeign为什么不能高并发问题对您有所帮助,还望关注下本站哦!