系统架构 微服务调用为啥用RPC框架,http不更简单吗?
微服务调用为啥用RPC框架,http不更简单吗?
简单一点,HTTP是协议,RPC是概念!RPC可以基于HTTP协议(feign)、TCP协议(netty)、RMI协议(soap)和web服务(XML-RPC)框架实现。在传输过程中,由于序列化方法的不同,也出现了一些框架和协议,如Dubbo中的Dubbo协议、grpc protobuf序列化协议等。实际上,它们都是基于远程调用的概念。什么是远程呼叫?
关键是RPC是远程调用。远程调用是客户端通过上述协议向服务器发送接口、参数、参数类型、方法、返回值、返回值类型等(称为方法签名),通知服务器要调用的接口方法。这个过程就是RPC的实现过程!HTTP和RPC是两码事
!在性能方面,HTTP本身是基于TCP协议的,属于应用层协议,所以HTTP协议本身在实现过程中会占用大量的资源(内存、带宽等)。在性能方面,它肯定不如直接通过TCP实现的RPC协议快。不管HTTP有多优化,它绝对没有TCP那么快!另一方面,TCP依赖于字节码。目前常用的是将客户端调用的接口信息以序列化的方式发送到服务器端。序列化框架包括许多内容(Hession、protobuf、kryo等)。Kryo具有最高的序列化性能,protobuf具有序列化后最小的字节码)。序列化后的字节码越小,占用的带宽越小,序列化时间越长,线程IO延迟越短,线程IO延迟越小。因此,在具体的应用层,有很多技术可以讨论。您可以根据自己的硬件能力选择相应的技术
!欢迎热爱科技的人们来探索
现在流行的前后端分离项目都使用的是什么前后端框架?
开发框架主要分为三个部分:前端、web和持久性,可以自由组合。我单独谈。
在过去,有struts 1、struts 2和spring MVC for java web framework。
目前,只有一个选择:SpringMVC,其他人都不能玩。无论是玩耍、高格、火花还是Struts2。springmvc在用户数量和生态方面与springmvc不一样。
不管其他框架宣传得多好,都不建议投入大量精力。学习框架的设计思路还可以。请直接在生产环境中使用springmvc。spring的基础设施无法与其他框架相比。弹簧靴可用于快速开发。POM可以依赖于enable注释直接使用。
目前,有两种主流的JPA和mybatis。
如果项目是数据建模,请使用mybatis;如果项目是对象建模,请使用JPA。
春天来了。springboot的spring数据子项目应该希望将两者统一起来。不仅两者,而且其野心更大。它希望统一所有持久性层。DB、redis和elastic search都有相应的项目。它希望将所有持久性操作抽象为存储库操作。如果成功,业务逻辑就不需要关心持久层的选择,交换框架也非常方便。
目前,前端框架有三个选项:react、Ag和Vue。
我不喜欢react….的语法。。。。
似乎Ag在中国的知名度不高,所以我们不太关注。
最后的选择是Vue,它简单快速。支持的UI库也比较完善。
如果您想在项目中开发小型程序,建议使用Vue。语法高度一致。你将一眼就知道如何开发小程序。
系统架构 web前端三大主流框架 asp.net web开发框架
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。