主机论坛_虚拟主机_美国主机_美国虚拟主机_云主机技术_全球主机交流聚集地—Web Hosting Talk 中文站

找回密码
立即注册
发新帖

0

收听

5

听众

1015

主题
发表于 2022-8-17 11:03:49 | 查看: 22| 回复: 0
这篇文章给大家分享的是有关后台开发框架UDPServer的工作原理的内容。小编觉得挺实用的,因此分享给大家学习。如下资料是关于UDPServer的介绍和工作原理的内容。
第一个接触的叫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,因此只能作为内部的服务框架使用。
SD-WAN-MPLS组网http://www.kd010.com/

收藏回复 显示全部楼层 道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|小黑屋|WebHostingTalk中文站

GMT+8, 2024-5-5 09:33 , Processed in 0.066725 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表