当前位置:网站首页>tcp框架需要解决的问题
tcp框架需要解决的问题
2022-07-31 01:51:00 【wilson_go】
1 自动编码,解码数据包,压缩在网络中传输数据
频繁发送数据,减少在网络中的延时。编码解码在cpu中高速运算,网络中传输很慢
tcp是流式的
2、自动封包,解包,解决TCP粘包问题
TCP流式传输,消息收尾相连。解决:给每个包打上报头,至少添加长度信息,读出有多长。
3、在连接建立和连接断开的时候,自动执行回调函数
4、客户端连接数控制
长消息,长连接
5、客户端消息频率控制
每秒钟发送很多包
6、自动处理客户端消息
根据客户端消息的类型,分配messageID,根据messageID识别消息,绑定回调函数,调用相应的函数处理。
7、自动启动固定数目的worker goroutine 进行消息的处理,避免goroutine的无线扩张
过来一个,起一个goroutine。不能让goroutine无限扩张,固定数目,处理。组织,放入消息队列。worker从消息队列从消费消息,处理。处理消息,利用用户注册的回调函数,处理完结束。
8、高效的,自动执行回调函数的timer/ticker
client—>client handler goroutine —>两个goroutine
client reader goroutine
client writer goroutine编码
解包数据,数据和连接作为一个request传入消息处理模块 形成request
当把数据处理完,发送到消息队列中,如发送到第五个消息队列5 worker5读到消息,worker去apis中找
如果api需要向客户端写数据,request中封装有连接消息
边栏推荐
- 勾股数元组 od js
- ShardingJDBC基本介绍
- SQLserver查询最近三个月的数据,语句该怎么写sqlserver
- leetcode-399:除法求值
- 12张图带你彻底搞懂服务限流、熔断、降级、雪崩
- 基于FPGA的图像实时采集
- leetcode-952: Calculate max component size by common factor
- I have been working in software testing for 3 years, how did I go from just getting started to automated testing?
- 曼城推出可检测情绪的智能围巾,把球迷给整迷惑了
- 两个有序数组间相加和的Topk问题
猜你喜欢
随机推荐
想要写出好的测试用例,先要学会测试设计
关于Redis相关内容的基础学习
pycharm cannot run after renaming (error: can't open file...No such file or directory)
coldfusion文件读取漏洞(CVE-2010-2861)
VSCode插件:嵌套注释
12张图带你彻底搞懂服务限流、熔断、降级、雪崩
kotlin中函数作为参数和函数作为返回值实例练习
Distributed. Idempotency
Shell变量与赋值、变量运算、特殊变量
"Cloud native's master, master and vulgar skills" - 2022 National New College Entrance Examination Volume I Composition
leetcode-1161: Maximum in-layer element sum
My first understanding of MySql, and the basic syntax of DDL and DML and DQL in sql statements
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
leetcode-399:除法求值
类似 MS Project 的项目管理工具有哪些
JPEG Steganalysis of Digital Image Steganography
Centos 7.9 install PostgreSQL14.4 steps
加密生活,Web3 项目合伙人的一天
934. 最短的桥
力扣刷题之有效的正方形(每日一题7/29)