在基于tcp的 rcp实现方式中,有如下几种选择:

1. 长连接:同步和异步方式。

同步方式下客户端所有请求共用同一连接,在获得连接后要对连接加锁,在读写结束后才解锁释放连接,性能低下,基本很少采用,唯一优点是实现极其简单。

异步方式下所有请求都带有消息ID,因此可以批量发送请求,异步接收回复,所有请求和回复的消息都共享同一连接,信道得到最大化利用,因此吞吐量最大。

这个时候接收端的处理能力也要求比较高,一般都是独立的一个(或者多个)收包线程(或者进程)防止内核缓冲区被填满影响网络吞吐量。缺点是实现复杂,需要异步状态机,需要增加负载均衡和连接健康度检测机制,等等。

2. 短连接:同步方式。

优点是实现简单,每个请求单独建立一个连接,用完即关。缺点是大量并发下会出现大量TIMEWAIT状态,信道处于过载状态,无法创建新连接。

3. 连接池:同步方式

每个请求单独占用一个连接,使用完以后把连接放回池中,给下一个请求使用。缺点还是网络利用率不高,因为在等待对端回复的时候,连接是空闲的。
---------------------
作者:weixin_41805011
来源:CSDN
原文:https://blog.csdn.net/weixin_41805011/article/details/80452245
版权声明:本文为博主原创文章,转载请附上博文链接!

最新文章

  1. 【C#】2.算法温故而知新 - 冒泡排序
  2. 使用PHP编写发红包程序
  3. 租房时代,K2 BPM软件带你拥抱更好生活
  4. 多页面打印--web print
  5. Android开发之TextView实现跑马灯效果
  6. windows phone因为墓碑化导致“正在恢复”的分析
  7. JS多维数组转一维
  8. 双击td字段,出现编辑文本框(更改之后发送数据请求) jsp
  9. windy数(bzoj 1227)
  10. 关于string.h中字符串的操作
  11. git 对 Microsoft Word 进行版本控制
  12. Maven简介(Maven是什么)
  13. 适配器模式(adapter)
  14. Fluent动网格【7】:网格节点运动
  15. 洛谷 P3521 ROT-Tree Rotations [POI2011] 线段树
  16. Flask初级(八)flash与前台交互get post 简介
  17. 初识构建工具-gradle
  18. WCF 的 WebGet 方式
  19. C++中的枚举变量
  20. vue知识总汇

热门文章

  1. LeetCode-使数组唯一的最小增量
  2. 大数据软件安装之Flume(日志采集)
  3. iOS 指纹认证登陆开发(TouchID)
  4. .NET Core技术研究-HttpContext访问的正确姿势
  5. java常用容器简要性能分析(List。Map。Set)
  6. 洛谷 P1891 疯狂LCM 题解
  7. Java井字棋游戏
  8. 【Unity游戏开发】跟着马三一起魔改LitJson
  9. 李宏毅老师机器学习课程笔记_ML Lecture 1: 回归案例研究
  10. 解决使用requests_html模块,html.render()下载chromium报错、速度慢问题