﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-ifeng-最新评论</title><link>http://www.cppblog.com/ifeng/CommentsRSS.aspx</link><description /><language>zh-cn</language><pubDate>Thu, 24 Jan 2013 02:41:01 GMT</pubDate><lastBuildDate>Thu, 24 Jan 2013 02:41:01 GMT</lastBuildDate><generator>cnblogs</generator><item><title>re: EPOLL下的accept(转载)</title><link>http://www.cppblog.com/ifeng/archive/2012/08/24/157141.html#188083</link><dc:creator>linxr</dc:creator><author>linxr</author><pubDate>Thu, 23 Aug 2012 16:44:00 GMT</pubDate><guid>http://www.cppblog.com/ifeng/archive/2012/08/24/157141.html#188083</guid><description><![CDATA[呵呵，我今天也找到问题了，才看到你的文章。网上的代码，帮助人也害人哪。<img src ="http://www.cppblog.com/ifeng/aggbug/188083.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ifeng/" target="_blank">linxr</a> 2012-08-24 00:44 <a href="http://www.cppblog.com/ifeng/archive/2012/08/24/157141.html#188083#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: FastCGI运行模型学习总结</title><link>http://www.cppblog.com/ifeng/archive/2012/01/06/163635.html#163694</link><dc:creator>coolypf</dc:creator><author>coolypf</author><pubDate>Fri, 06 Jan 2012 02:38:00 GMT</pubDate><guid>http://www.cppblog.com/ifeng/archive/2012/01/06/163635.html#163694</guid><description><![CDATA[为了提高并发度，_同一_ fastcgi进程可以fork多份，<br>这时session管理就成了问题，apache的mod_fcgi实现了session affinity，<br>nginx的话，可以自己用共享内存实现，或者用memcached。<br>觉得麻烦的话，可以用FastCGI++这个库，不必fork也可以有很好的并发度。<img src ="http://www.cppblog.com/ifeng/aggbug/163694.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ifeng/" target="_blank">coolypf</a> 2012-01-06 10:38 <a href="http://www.cppblog.com/ifeng/archive/2012/01/06/163635.html#163694#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 服务器多线程方案的选择</title><link>http://www.cppblog.com/ifeng/archive/2011/11/25/160587.html#160986</link><dc:creator>冷锋</dc:creator><author>冷锋</author><pubDate>Fri, 25 Nov 2011 14:01:00 GMT</pubDate><guid>http://www.cppblog.com/ifeng/archive/2011/11/25/160587.html#160986</guid><description><![CDATA[如果玩家同时发两个消息给服务端，前一个是需要操作数据库的，假如应用服务器跟数据库服务器之间是用异步回调方式通信的，那么在应用服务器要怎么保证返回给客户端的是顺序的呢？@Todd<br><img src ="http://www.cppblog.com/ifeng/aggbug/160986.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ifeng/" target="_blank">冷锋</a> 2011-11-25 22:01 <a href="http://www.cppblog.com/ifeng/archive/2011/11/25/160587.html#160986#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 服务器多线程方案的选择</title><link>http://www.cppblog.com/ifeng/archive/2011/11/23/160587.html#160791</link><dc:creator>Todd</dc:creator><author>Todd</author><pubDate>Wed, 23 Nov 2011 04:59:00 GMT</pubDate><guid>http://www.cppblog.com/ifeng/archive/2011/11/23/160587.html#160791</guid><description><![CDATA[个人觉得要看你的应用是什么类型。 如果是像Web服务器这样的，可以为每个连接分配一个线程， 从IO到逻辑都由这一个线程来处理， 线程之间没什么好同步的， 因为两个客户端之间没什么交互。而且Web服务器服务每一个请求的时间不长（长了客户端不等你）。<br><br>如果是游戏服务器这种， 那IO和逻辑肯定要隔离的。 逻辑层可以用一个线程（如果并发用户量很大必须是一个线程了， 开几K个线程不现实，锁来锁去也浪费)， IO层我个人理解上还存在障碍， 不确定是多线程同步IO+线程池好还是单线程异步IO好， 但肯定不能单线程同步IO， 否则 客户端之间要相互阻塞了。  在IO层与逻辑层之间共享一个收发缓冲区，肯定要有锁了，但只是存取缓冲区，代价不高， 单核心时甚至不存在什么代价吧? 再有我觉得高并发服务器难以维持长连接，应该是客户端定时请求吧（IO层需限定请求频次吧）<br><br> <img src ="http://www.cppblog.com/ifeng/aggbug/160791.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ifeng/" target="_blank">Todd</a> 2011-11-23 12:59 <a href="http://www.cppblog.com/ifeng/archive/2011/11/23/160587.html#160791#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 服务器多线程方案的选择</title><link>http://www.cppblog.com/ifeng/archive/2011/11/23/160587.html#160771</link><dc:creator>zuhd</dc:creator><author>zuhd</author><pubDate>Wed, 23 Nov 2011 01:13:00 GMT</pubDate><guid>http://www.cppblog.com/ifeng/archive/2011/11/23/160587.html#160771</guid><description><![CDATA[send是要加锁的，session是逻辑层的session，从网络库继承出去的，能被网络回调的，至于是哪种设计模式我也记不住那名<img src ="http://www.cppblog.com/ifeng/aggbug/160771.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ifeng/" target="_blank">zuhd</a> 2011-11-23 09:13 <a href="http://www.cppblog.com/ifeng/archive/2011/11/23/160587.html#160771#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 服务器多线程方案的选择[未登录]</title><link>http://www.cppblog.com/ifeng/archive/2011/11/22/160587.html#160742</link><dc:creator>冷锋</dc:creator><author>冷锋</author><pubDate>Tue, 22 Nov 2011 13:52:00 GMT</pubDate><guid>http://www.cppblog.com/ifeng/archive/2011/11/22/160587.html#160742</guid><description><![CDATA[b.新的用户来了，还是用100，就会把本该发给用户A的发给用户B了，不过这个可以自己维护一个session ID搞定，c实时send的话如果发不完得有个缓冲区延迟到下次再发，由于主线程跟逻辑线程都在操作同一个fd，所以要加锁，除非你把fd分给逻辑线程单独维护，负责它的读写,我已经按照1a实现服务器的逻辑层了，你说的session是线程池还是全局的一个表？我这边事维护了一个全局的connection的表@zuhd<br><img src ="http://www.cppblog.com/ifeng/aggbug/160742.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ifeng/" target="_blank">冷锋</a> 2011-11-22 21:52 <a href="http://www.cppblog.com/ifeng/archive/2011/11/22/160587.html#160742#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 服务器多线程方案的选择</title><link>http://www.cppblog.com/ifeng/archive/2011/11/22/160587.html#160687</link><dc:creator>zuhd</dc:creator><author>zuhd</author><pubDate>Tue, 22 Nov 2011 01:45:00 GMT</pubDate><guid>http://www.cppblog.com/ifeng/archive/2011/11/22/160587.html#160687</guid><description><![CDATA[正如你说的多线程对于管理网络包的顺序很麻烦，IO线程+逻辑线程做起来比较清晰，估计大家都倾向于此吧，至于粘包和切包这个就是对IO数据流的重新整理分类，自己肯定要做个包长度吧。<br>a.在while中检查是否有完整包，有完整包，就调用下层session的逻辑，也能清晰分层做到的。<br>b.即使100的前一个用户断开，新的用户来了，也不会有麻烦，底层的网络库根本不会关心这个socket是谁的，照常处理IO就是，只是逻辑层的session要自己处理了<br>c.Send我是倾向于第一种实时的方案，也没有一堆的锁，一个连接一个而已，总算很清晰是吧，也值了<br>总结：1个IO+1个逻辑+1个session池<img src ="http://www.cppblog.com/ifeng/aggbug/160687.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ifeng/" target="_blank">zuhd</a> 2011-11-22 09:45 <a href="http://www.cppblog.com/ifeng/archive/2011/11/22/160587.html#160687#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 服务器多线程方案的选择</title><link>http://www.cppblog.com/ifeng/archive/2011/11/21/160587.html#160636</link><dc:creator>mentalmap</dc:creator><author>mentalmap</author><pubDate>Mon, 21 Nov 2011 05:38:00 GMT</pubDate><guid>http://www.cppblog.com/ifeng/archive/2011/11/21/160587.html#160636</guid><description><![CDATA[不是一定非加锁不可的，如果是单一的读和写线程的话<img src ="http://www.cppblog.com/ifeng/aggbug/160636.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ifeng/" target="_blank">mentalmap</a> 2011-11-21 13:38 <a href="http://www.cppblog.com/ifeng/archive/2011/11/21/160587.html#160636#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 服务器多线程方案的选择</title><link>http://www.cppblog.com/ifeng/archive/2011/11/21/160587.html#160615</link><dc:creator>冷锋</dc:creator><author>冷锋</author><pubDate>Mon, 21 Nov 2011 01:57:00 GMT</pubDate><guid>http://www.cppblog.com/ifeng/archive/2011/11/21/160587.html#160615</guid><description><![CDATA[假如需要异步访问数据库的话怎么来保证顺序呢，由客户端来保证吗？一定要前一个请求返回了才发送下一个请求？假如是写游戏服务器的话呢？@yanxinmeng<br><img src ="http://www.cppblog.com/ifeng/aggbug/160615.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ifeng/" target="_blank">冷锋</a> 2011-11-21 09:57 <a href="http://www.cppblog.com/ifeng/archive/2011/11/21/160587.html#160615#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 服务器多线程方案的选择</title><link>http://www.cppblog.com/ifeng/archive/2011/11/21/160587.html#160610</link><dc:creator>yanxinmeng</dc:creator><author>yanxinmeng</author><pubDate>Mon, 21 Nov 2011 01:07:00 GMT</pubDate><guid>http://www.cppblog.com/ifeng/archive/2011/11/21/160587.html#160610</guid><description><![CDATA[你以上说的几种方案都很对。 但是没有一种方案可以适用很多情况。<br>memcache也有适用的场景。<img src ="http://www.cppblog.com/ifeng/aggbug/160610.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ifeng/" target="_blank">yanxinmeng</a> 2011-11-21 09:07 <a href="http://www.cppblog.com/ifeng/archive/2011/11/21/160587.html#160610#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>