delphi透过修改socket做三层,能实现一个服务器2万个客户端的连接
delphi通过修改socket做三层,能实现一个服务器2万个客户端的连接?
公司新招了个大牛,他说delphi通过修改socket和ClientDataSet做三层,能实现一个服务器2万个客户端的连接。公司正准备开发这个项目,感觉很不可思议(因为现在midas和remobjects一般一个服务器也只是几百客户端连接吧)。,各位大牛发表下自己的见解?
------解决方案--------------------
应该是没有问题的,但是有时也有取决于“服务器配置”+“光纤”
的综合相关才可以的,服务器中的软件一般情况是不限制“连接数目”的
------解决方案--------------------
ClientDataSet不需要保持连接的.
------解决方案--------------------
并发表示怀疑
------解决方案--------------------
既然他说了能达到2W连接,你就问嘛:哪个现有系统平台是使用了该方案,截个图来看也好。
不然我哪天折腾个serversocket,嗯,理论连接1000W。。。
------解决方案--------------------
没有现网运行检验的东西,那就是浮云,说的再好,代码逻辑再精密都没用。
------解决方案--------------------
客户端请求频率高一些,数据多一些的话,服务器的资源光做dataset=>TDataProvider.data那个数据转换了,不用做其它了。还TClientDataset
一听这数量就知道就所谓看了点midas+iocp的东东的人在。。。站着说话不腰疼
------解决方案--------------------
【一个服务器2万个客户端的连接】
又不是长连接,业务不忙的话,2万个客户端同时操作的也就几百吧
------解决方案--------------------
如果按我的ini@http机制,后台是iis,是微软自己用iocp写的
轮连接能力、效率,没人能比它好了吧
------解决方案--------------------
都走服务资源的话 如果计算量大 也就不到1000吧 假设多个服务器 是可以的。
------解决方案--------------------
单纯连接 4W都没问题
------解决方案--------------------
不见得没有人比它好,肯定没错,
但是真的做的比它好,还真是不容易,何况它都无须做,已经是现成的了
至于http的开销大,的确是自己定的协议可以最节省
但是一般客户端的防火墙都会直接支持http,如果自己协议的tcp端口,就不一定了
------解决方案--------------------
连接数不是问题关键,问题是硬件和网络以及连接以后的数据传输负荷。
------解决方案--------------------
但从连接数是没有任何问题的! 就看用户的并发数量。
------解决方案--------------------
我觉得sz_haitao做法比较可取,LZ可以考虑使用这种架构。
MIDAS我的感觉是:在应用服务端中的资源占用过大,资源浪费在server.Dataset->TDataProvider->OleVariant->Client->ClientDataset的转换上
所以并发量做不起来。
RO没用过,不评。
所以一听MIDAS有2W连接,立马过来瞅瞅,看如何解决的。结果啊。。。
MIDAS,自觉得精髓在于数据打包,分包,发送,合并。只要更好的解决这个问题才谈大量的并发量的问题。
有谁同意呼?
------解决方案--------------------
不可能的事情,支持2W连接?用IOCP?我看过一般的游戏服务器(顶级配置+超好网络传输)一般在2000-3000人左右连接,假如支持2W连接,用服务器集群吧,否则不可能实现的。
------解决方案--------------------
不可能的事情,支持2W连接? 支持2W连接是绝对可能的事情! 但是支持多少业务操作并发才是重要的。
往往网络的并发远远胜于我们的业务并发操作!
------解决方案--------------------
理论上的连接数上限是64k,不过后来又有超过10万的技术
不过,关键是每个连接要做的事情,这个才是瓶颈了
另外,如果每个客户端的操作不是持续密集的,使用非连接的http模式,可以绕开连接数上限
------解决方案--------------------
看待问题要看本质吧。
网络连接写的再好,就算有10W,但只能支撑100-500连接的服务,
那现网上线后,整个项目组的人会挨批不?
挨批都是小事。。。
设计容量峰值在线连接1W,然后折腾个10W网络架构,成天在讨论这个架构怎么怎么强,却不想为啥在线连接上了200后出现问题,这样的设计有毛用。。。
------解决方案--------------------
个人经验:三层或N层结构,当上了一定量的在线数,如1K,将会是自己编写自有的平台架构,来代替MIDAS,自定自己一套协议用于数据通讯,原因就是上述所说。
------解决方案--------------------
目前技术2W不太可能,如果只是简单的传送一句hello world那就没话说了
公司新招了个大牛,他说delphi通过修改socket和ClientDataSet做三层,能实现一个服务器2万个客户端的连接。公司正准备开发这个项目,感觉很不可思议(因为现在midas和remobjects一般一个服务器也只是几百客户端连接吧)。,各位大牛发表下自己的见解?
------解决方案--------------------
应该是没有问题的,但是有时也有取决于“服务器配置”+“光纤”
的综合相关才可以的,服务器中的软件一般情况是不限制“连接数目”的
------解决方案--------------------
ClientDataSet不需要保持连接的.
------解决方案--------------------
并发表示怀疑
------解决方案--------------------
既然他说了能达到2W连接,你就问嘛:哪个现有系统平台是使用了该方案,截个图来看也好。
不然我哪天折腾个serversocket,嗯,理论连接1000W。。。
------解决方案--------------------
没有现网运行检验的东西,那就是浮云,说的再好,代码逻辑再精密都没用。
------解决方案--------------------
客户端请求频率高一些,数据多一些的话,服务器的资源光做dataset=>TDataProvider.data那个数据转换了,不用做其它了。还TClientDataset
一听这数量就知道就所谓看了点midas+iocp的东东的人在。。。站着说话不腰疼
------解决方案--------------------
【一个服务器2万个客户端的连接】
又不是长连接,业务不忙的话,2万个客户端同时操作的也就几百吧
------解决方案--------------------
如果按我的ini@http机制,后台是iis,是微软自己用iocp写的
轮连接能力、效率,没人能比它好了吧
------解决方案--------------------
都走服务资源的话 如果计算量大 也就不到1000吧 假设多个服务器 是可以的。
------解决方案--------------------
单纯连接 4W都没问题
------解决方案--------------------
不见得没有人比它好,肯定没错,
但是真的做的比它好,还真是不容易,何况它都无须做,已经是现成的了
至于http的开销大,的确是自己定的协议可以最节省
但是一般客户端的防火墙都会直接支持http,如果自己协议的tcp端口,就不一定了
------解决方案--------------------
连接数不是问题关键,问题是硬件和网络以及连接以后的数据传输负荷。
------解决方案--------------------
但从连接数是没有任何问题的! 就看用户的并发数量。
------解决方案--------------------
我觉得sz_haitao做法比较可取,LZ可以考虑使用这种架构。
MIDAS我的感觉是:在应用服务端中的资源占用过大,资源浪费在server.Dataset->TDataProvider->OleVariant->Client->ClientDataset的转换上
所以并发量做不起来。
RO没用过,不评。
所以一听MIDAS有2W连接,立马过来瞅瞅,看如何解决的。结果啊。。。
MIDAS,自觉得精髓在于数据打包,分包,发送,合并。只要更好的解决这个问题才谈大量的并发量的问题。
有谁同意呼?
------解决方案--------------------
不可能的事情,支持2W连接?用IOCP?我看过一般的游戏服务器(顶级配置+超好网络传输)一般在2000-3000人左右连接,假如支持2W连接,用服务器集群吧,否则不可能实现的。
------解决方案--------------------
不可能的事情,支持2W连接? 支持2W连接是绝对可能的事情! 但是支持多少业务操作并发才是重要的。
往往网络的并发远远胜于我们的业务并发操作!
------解决方案--------------------
理论上的连接数上限是64k,不过后来又有超过10万的技术
不过,关键是每个连接要做的事情,这个才是瓶颈了
另外,如果每个客户端的操作不是持续密集的,使用非连接的http模式,可以绕开连接数上限
------解决方案--------------------
看待问题要看本质吧。
网络连接写的再好,就算有10W,但只能支撑100-500连接的服务,
那现网上线后,整个项目组的人会挨批不?
挨批都是小事。。。
设计容量峰值在线连接1W,然后折腾个10W网络架构,成天在讨论这个架构怎么怎么强,却不想为啥在线连接上了200后出现问题,这样的设计有毛用。。。
------解决方案--------------------
个人经验:三层或N层结构,当上了一定量的在线数,如1K,将会是自己编写自有的平台架构,来代替MIDAS,自定自己一套协议用于数据通讯,原因就是上述所说。
------解决方案--------------------
目前技术2W不太可能,如果只是简单的传送一句hello world那就没话说了