千家信息网

后台开发小白必学服务器框架——UDPServer

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,毕业后加入了一家大型的互联网公司的音视频产品部门做后台开发,其实我本身是学习自动化的,研究生的方向嵌入式系统,对互联网可是一知半解,因此能进入这样一个大公司还是很幸运的。刚开始工作的半年应该是在上份工
千家信息网最后更新 2025年12月02日后台开发小白必学服务器框架——UDPServer


毕业后加入了一家大型的互联网公司的音视频产品部门做后台开发,其实我本身是学习自动化的,研究生的方向嵌入式系统,对互联网可是一知半解,因此能进入这样一个大公司还是很幸运的。

刚开始工作的半年应该是在上份工作最快乐的时光,那时候我们十来个人被抽调出来做好友系统,由Z组长负责。从产品到开发,大部分都是新入职员工,pm给画了一个大饼,大家都满怀憧憬。闲话少说,先介绍一下刚开始接触后台开发用到的服务器框架。

第一个接触的叫udpserver。顾名思义,就是只支持udp的服务框架。因为我们部门是做音视频产品的,音视频数据对实时性要求很高,因此常用udp传输数据。Udp server是同步多进程模型,包含1个Interface进程和多个Worker进程。

Iterface进程负责接收来自外部的请求,做一些合法性校验和格式转换后,转发给后端的Worker进程。Worker进程监听不同的端口收包,并处理业务逻辑。Worker进程的回包直接发给客户端。

此处有几个点值得关注:

首先,Worker进程监听的是不同端口。

监听相同的端口显然是更常见的做法,而监听相同的端口也需要注意一点,即监听的端口socket必须是从父进程中继承得到的,而非Worker自己创建的socket。因为对于前者内核才能保证调度的均匀性,而后者是没有这种效果的,内核只会把请求包扔给同一个Worker。

这里之所以使用监听不同端口的方案,是为了保证调度的可控性,请求包发往哪个Worker是有预期的,可以做更个性化的调度策略,问题定位也方便得多。Udp server默认是使用轮询的调度方式。

第二点是,Worker进程回包是直接返回给客户端的。

另一种常见做法是通过Interface进程回包,缺点是Interface会成为瓶颈。而Worker直接回包的缺点是向外部暴露Worker,不过这个问题并不十分严重。相较之下,我们更希望获得性能的提升。为了给客户端回包,Interface会把客户端的ip和端口封装到请求包发给Worker。

框架虽简单,但是性能非常优异,作为echosvr性能可达30w+ QPS。但是这个框架不支持TCP,因此只能作为内部的服务框架使用。

因为很久没用这个框架了,以上所述可能有不准确或者不充分的地方,望不吝赐教。

进程 端口 框架 监听 客户 调度 开发 服务 不同 产品 性能 端的 音视 后台 相同 互联网 做法 公司 内核 客户端 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 2019网络安全周活动方案 网络安全官齐聚 计算机网络技术 建设规划 dns协议有网络安全问题吗 京东拍卖网络技术有限公司 女生网络安全与执法 云服务器有必要续费吗 用数据库建立学生成绩表 3d 软件开发框架 数据库的多表查询实验总结与分析 服务器可加入ip数是什么意思 房山区网络技术咨询成本价 服务器反向分流 方舟人物服务器在哪个位置 吐鲁番网络安全知识竞赛名单 江苏省绿色专利数据库 sql语言可以删除数据库吗 长白县网络安全周宣传活动 wds无法连接服务器啥意思 饥荒服务器在哪 计算机网络技术可以纹身吗 云服务器的数据能相互交换吗 网络技术的发展概括 西北大学计算机网络安全 深圳旅游软件开发咨询 今日社会网络安全面临的挑战 网络安全大赛要什么学历 阿里云服务器什么配置够用 软件开发方向论文 软件开发数学和英语差怎么办
0