十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
大数据架构中RPC传输是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的瑞安网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
RPC(Remote ProcedureCall),即远程过程调用,通过网络实现两个服务器之前的调用,RPC是跨越传输层和应用层。
RPC的调用过程:
客户端端发起一个RPC请求,本地调用client stub负责将调用的接口、方法和参数按照事先约定好的协议进行序列化,然后由RPC框架的RPCRuntime实例通过socket传输到远程服务器上,远程服务器端RPCRuntime收到实例后在通过server stub进行反序列化,发起最终的method调用。
比较优秀的RPC开源框架:
国内Dubbo、Motan,国外Thrift、gRPC
从以下方面理解RPC的实现原理:
1、动态代理:代理就是要做一件事,不用亲自去做,找一个代理代做,动态是指可以动态指定执行的方法及任务数。
2、反射:是指计算机程序在运行时可以访问、检测和修改它本身状态或行为的一种能力。传入远程服务名和方法名,通过反射自动定位到需要被调用的方法,再传入入参,从而进行RPC调用。
3、序列化:将内存中的数据体转换为字节流,反序列化是将字节流转换为数据体。
4、网络编程:RPC一般以TCP协议为基础。
服务RPC请求异常的定位方法:
第1步、分析网络情况,查看是否延迟严重,是否存在TCP重传。
第2步、分析服务端和调用端的运行情况,查看是否压力较大,比如CPU使用率、CPU负载、内存占用大小等
第3步、查看传输对象是否很大很复杂,这对序列化影响很大。
第4步、如果服务端有队列,可以试着减少队列,或者改为固定线程池,减少线程池数量。
第5步、控制CPU不用使用太高,尽量不要超过80%,有个计算公式(核数*7)然后去百分比,eg:4c的容器,那么2.8%的使用率属于正常水平,当达到80%可能有线程阻塞。
关于大数据架构中RPC传输是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。