RPC
文章平均质量分 94
小颜-
这个作者很懒,什么都没留下…
展开
-
【RPC】动态代理:面向接口编程,屏蔽RPC处理流程
动态代理在RPC里面的应用,虽然它只是一种具体实现的技术,但我觉得只有理解了方法调用是怎么被拦截的,才能厘清在RPC里面我们是怎么做到面向接口编程,帮助用户屏蔽RPC调用细节的,最终呈现给用户一个像调用本地一样去调用远程的编程体验。既然动态代理是一种具体的技术框架,那就会涉及到选型。我们可以从这样三个角度去考虑:因为代理类是在运行中生成的,那么代理框架生成代理类的速度、生成代理类的字节码大小等等,都会影响到其性能——生成的字节码越小,运行所占资源就越小。原创 2024-01-19 08:00:00 · 951 阅读 · 0 评论 -
【RPC】网络通信:哪种网络IO模型最适合RPC框架?
系统内核处理IO操作分为两个阶段——等待数据和拷贝数据。等待数据,就是系统内核在等待网卡接收到数据后,把数据写到内核中;而拷贝数据,就是系统内核在获取到数据后,将数据拷贝到用户进程的空间中。以下是具体流程:应用进程的每一次写操作,都会把数据写到用户空间的缓冲区中,再由CPU将数据拷贝到系统内核的缓冲区中,之后再由DMA将这份数据拷贝到网卡中,最后由网卡发送出去。原创 2024-01-17 08:00:00 · 1042 阅读 · 0 评论 -
【RPC】序列化:对象怎么在网络中传输?
如何选择序列化协议RPC框架中如何去选择序列化协议,我们有这样几个很重要的参考因素,优先级从高到低依次是安全性、通用性和兼容性,之后我们会再考虑序列化框架的性能、效率和空间开销。这归根结底还是因为服务调用的稳定性与可靠性,要比服务的性能与响应耗时更加重要。另外对于RPC调用来说,整体调用上,最为耗时、最消耗性能的操作大多都是服务提供者执行业务逻辑的操作,这时序列化的开销对于服务整体的开销来说影响相对较小。使用RPC框架的最佳实践对象要尽量简单,没有太多的依赖关系,属性不要太多,尽量高内聚;原创 2024-01-15 08:15:00 · 1359 阅读 · 3 评论