wesom 发表于 2011-5-10 11:28:08

讨论half sync-async与LF的区别及各自合适的应用场景

性能 : LF 略> half
half容易处理爆发的客户(书上如是说,不解,包多了,用尽了池中的所有线程还不是得候在那)
请各位多指教。。。

wesom 发表于 2011-5-13 10:01:19

自己顶下。。。
场景一: 服务器A 对应少量代理服务器连接,每个proxyserver负责大量client连接,此时可以认为该连接是“爆发的客户”,因为proxy转发几k数量的玩家数据包。
场景二:服务器B直接连接多个客户端,客户端连接可以认为是”非爆发的客户“。
前提:A、B都有使用多线程的理由,即处理过程中会是长处理,如数据库、磁盘操作等。
第一类合适使用hsha模式,即同一句柄的多个IO事件可并发处理,因为排队层更容易完成了生产消费的解耦,设计上处理消息的类与io处理Event_Handle最好解耦,即各干各的,有消息回复的话直接扔回排队层。
第二类更合适于LF模式,TP_Select序列化多个IO事件到达同一句柄,不同句柄是可以并发处理的。
当然,以上讨论都是基于ACE中TP_Select提供的功能进行描述的,我不知道SPServer中LF实现时是否有做
同一句柄多个IO事件序列化处理,如果有知道的朋友,请不吝指教。

wesom 发表于 2011-5-13 10:04:36

漏了一句,第二类,同一句柄多个IO事件是不可并发的,除了超时处理
页: [1]
查看完整版本: 讨论half sync-async与LF的区别及各自合适的应用场景