OpenRTMFP/Cumulus Primer(3)图解CumulusEdge原理
OpenRTMFP/Cumulus Primer 入门(3)图解CumulusEdge原理
1 CumulusEdge 为 CumulusServer 提供可扩展性CumulusEdge 为 CumulusServer 分担负载(俗称“扛连接”)。分担什么负载?一台服务的 CPU 资源、内存资源都是有限的,即是配置再高的服务器,对于高并发的应用来说,一台服务器的性能总是不够的。还有,端口号也是有限的(65536个)。 如果使用了 CumulusEdge,CumulusServer 可以将新来的 Clients 根据 CumulusEdge 列表和这些 CumulusEdge 资源的当前状况来分配。 如何选择哪个 CumulusEdge?你可以先理解为一种非常自然简单的方式: 上图来自?OpenRTMFP/Cumulus 项目主页。 CumulusServer 是 OpenRTMFP/Cumulus 的中心,它有如下特点:
CumulusServer 直接与 CumuluEdge 通过文本数据格式传输 Request 和 Response。CumulusEdge 由 CumulusServer 分配 Clients 后,Clients 接下来就只与 CumulusEdge 直接通信了,并完成 ExchangeKey 的解密(Decrypt)、编码(Encode),以及负责完成一些高资源开销的操作,和具有高开销加密操作的握手动作。 简而言之,CumulusEdge 可以帮助 CumulusServer 扩展 Clients 连接数。 2 部署原则CumulusServer 和 CumulusEdge 对每一个 Client 都必须有一个 public 的端口。形象一些说,可以看下图。下图中的内部结点与外环(虚线)直接的连接,表示与 Clients 之间的连接,这样的连接的端口必须都是 public。而 CumulusServer 与 CumulusEdge 之间的连接,是 private 端口。 如果将 CumulusServer 和 CumulusEdge 部署在一个局域网络内,那么对于 Cumulus 整体的性能很有好处。 3 重定向算法当 CumulusServer 收到一个新的 Client 的请求时,会检查 CumulusEdge List,如果这个 List 为空,则接下来由 CumulusServer 来“招待”这个 Client。 · 如果 CumulusEdge List 不为空,这个列表将是按照每个 CumulusEdge 所连接的 Clients 数量来排序的( 当然,如果 CumulusServer 将新来的 Client 丢给 CumulusEdge,但并没有在 Client 与 CumulusEdge 之间成功地建立起连接,那么 CumuluServer 就得来“招待”这个 Client 了。 - 转载请注明来自柳大的CSDN博客?Blog.CSDN.net/Poechant - (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |