Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance phoenix通道及其与插座的关系_Performance_Websocket_Elixir_Phoenix Framework - Fatal编程技术网

Performance phoenix通道及其与插座的关系

Performance phoenix通道及其与插座的关系,performance,websocket,elixir,phoenix-framework,Performance,Websocket,Elixir,Phoenix Framework,我需要一些关于长生不老药/凤凰频道的建议。我有一个与场馆变化相关的应用程序,为了减少发送给每个客户端的数据量,我只希望每个客户端订阅它关心的场馆 考虑到这一点,我考虑建立一个“VenueChanges/*”频道,让每个客户使用其关心的每个场馆id(即“VenueChanges/1”、“VenueChanges/2”等)多次订阅该频道 客户关心的场地会经常变化,这意味着会有很多加入和退出渠道 我的问题是,让客户多次加入频道的开销是多少。我假设仍然只有一个插座打开,而每个连接的通道都没有一个新插座,

我需要一些关于长生不老药/凤凰频道的建议。我有一个与场馆变化相关的应用程序,为了减少发送给每个客户端的数据量,我只希望每个客户端订阅它关心的场馆

考虑到这一点,我考虑建立一个“VenueChanges/*”频道,让每个客户使用其关心的每个场馆id(即“VenueChanges/1”、“VenueChanges/2”等)多次订阅该频道

客户关心的场地会经常变化,这意味着会有很多加入和退出渠道

我的问题是,让客户多次加入频道的开销是多少。我假设仍然只有一个插座打开,而每个连接的通道都没有一个新插座,这对吗


还有关于管理客户不断加入和退出渠道的建议吗?一般来说还有其他建议吗?如果这是一个坏主意,那么什么是更好的替代方案?

关于套接字问题,您是正确的,因为每个客户端仍然只有一个套接字(多个通道在该套接字上多路复用)

Chris McCord在上的帖子虽然没有直接回答您一致的加入/离开问题,但有一些关于绩效的非常好的数据总结如下:

对于Phoenix,我们已经证明了通道性能保持一致 随着通知需求的增加,这对于处理 交通高峰与避免超载

也就是说,您的服务器硬件和部署分发策略也将在解决这一问题方面发挥重要作用

最后,根据Chris对55000个连接的测试,您的意思是加入/离开频道主题(或在某些地方被称为“房间”):

值得注意的是,Phoenix在为每个房间50和200个用户进行广播测试时保持相同的响应能力


很好的问题,但不幸的是,这不是StackOverflow的最佳问题类型。一般建议问题被认为是离题的。你自己试过看会发生什么吗?我不同意,只是最后一部分是一般性的建议还有一个关于绩效的具体问题你是说“很多加入和离开频道主题/房间”吗?我从VenueChanges:1、VenueChanges:2等中得到了这样的印象。谢谢,这真的很有趣,另外,我在频道的源代码中注意到了一些东西,建议加入多个主题的替代方案