高并发下RPC通信优化路径

本文探讨了在高并发环境下RPC通信的选择,分析了TCP和UDP协议的优缺点。推荐在对数据可靠性要求较高的场景下使用TCP,而在局域网并不要求可靠性时考虑UDP以提升效率。同时,介绍了Netty通信框架在优化socket网络通信方面的策略,包括非阻塞I/O、Reactor模型、串行设计和零拷贝技术。最后,强调了量身定制报文格式和使用 Protobuf 序列化的重要性。
摘要由CSDN通过智能技术生成
  1. 选择合适的通信协议
    基于 TCP 协议实现的 Socket 通信是有连接的,而传输数据是要通过三次握手来实现数据
    传输的可靠性,且传输数据是没有边界的,采用的是字节流模式。
    基于 UDP 协议实现的 Socket 通信,客户端不需要建立连接,只需要创建一个套接字发送
    数据报给服务端,这样就不能保证数据报一定会达到服务端,所以在传输数据方面,基于
    UDP 协议实现的 Socket 通信具有不可靠性。UDP 发送的数据采用的是数据报模式,每个
    UDP 的数据报都有一个长度,该长度将与数据一起发送到服务端。
    优化方法:
    为了保证数据传输的可靠性,通常情况下我们会采用
    TCP 协议。如果在局域网且对数据传输的可靠性没有要求的情况下,我们也可以考虑使用
    UDP 协议,毕竟这种协议的效率要比 TCP 协议高。
    在这里插入图片描述

  2. 使用单一长连接

  3. 优化socket网络通信
    传统的socket网络通信存在I/O阻塞、线程模型缺陷、内存拷贝(用户空间–》内核空间–》 内核空间–》网络IO)两次拷贝,等问题缺陷,可以考虑使用成熟的通信框架:Netty。
    1️⃣实现非阻塞I/O:使用Select的多路复用器实现非阻塞I/O
    2️⃣高效的Reactor模型:使用一个主线程进行接收客户端和服务端连接请求,建立成功后进行监听此连接,同时创建一个链路请求注册到具体的工作线程中,由工作线程负责后续的I/O操作,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值