我花了一段时间寻找一本涵盖服务器devise模式的好书。 我正在寻找沿着四人帮的路线。
概念包括:
– Threaded vs Process vs基于组合的解决scheme
– 如何正确分类请求。 即我期望从任何域只有有限的请求,所以我可能只分配一定数量的每个域的工作人员。
– 工人超时
– poll / select / epoll用例
– 那些我不认识的东西!
任何build议,请!
谢谢!
两本非常有用的书:
企业应用程序架构的模式
企业集成模式 :
“企业集成模式”(Enterprise Integration Patterns)一书提供了一致的词汇和视觉符号来描述许多实施技术的大规模集成解决方案。 它还详细探讨了异步消息传递体系结构的优点和局限性。 您将学习如何设计将应用程序连接到消息系统的代码,如何将消息路由到正确的目标以及如何监视消息传递系统的运行状况。 本书中的模式是技术不可知的,并通过不同消息传递技术实现的例子,如SOAP,JMS,MSMQ,.NET,TIBCO和其他EAI工具。
Unix环境下的高级编程,第2版是了解Unix系统编程细节的绝佳资源。 这本书写得非常好(我最喜欢的英语书籍之一),深度非常好,关注四种常见的环境(出版时)有助于确保它是全面的。 过时不算太糟糕 – 新版操作系统中的新功能对于特定的问题来说可能是很棒的,但是这本书确实很好地涵盖了基础知识。
当然,缺点是APUE2nd错过了一些奇妙的第三方工具,比如libevent ,它可以使基于编程套接字的服务器变得更容易。 (并自动为该平台select(2)
, poll(2)
, epoll(4)
, kpoll
和Windows事件处理的'最佳'。)
至于线程和进程之间的选择,可以归结为:在任务之间需要多少内存共享? 如果每个进程都可以运行相对孤立,进程提供了更好的内存保护和速度惩罚。 如果进程需要与对方的对象进行交互,或者由单个线程“拥有”对象,则线程为共享数据提供了更好的原语。 (但是很多人会认为,线程的共享内存是对有趣和令人兴奋的错误的邀请,取决于它。)