【问题标题】:what is the best source for server design patterns/best practices? [closed]服务器设计模式/最佳实践的最佳来源是什么? [关闭]
【发布时间】:2011-05-17 02:04:42
【问题描述】:

我一直在寻找一本涵盖服务器设计模式的好书。我正在寻找类似四人帮的东西。

概念包括:

-- 线程 vs 进程 vs 基于组合的解决方案
-- 如何正确分类请求。即,我只希望来自任何域的有限请求,因此我只能为每个域分配一定数量的工作人员。
-- 工作人员超时
-- poll/select/epoll 用例
-- 还有那些我不知道的事情!

请有任何建议!

谢谢!

【问题讨论】:

    标签: c linux design-patterns pthreads process


    【解决方案1】:

    两本非常有用的书:

    《企业集成》一书 模式提供了一致的 词汇和视觉符号 描述大规模集成 跨许多实施的解决方案 技术。它还探索在 详细说明优点和局限性 异步消息传递 架构。你将学到如何 连接一个设计代码 应用到消息系统,如何 将消息路由到正确的 目的地以及如何监控 消息系统的健康状况。这 书中的图案是 与技术无关,栩栩如生 用不同的例子实现 消息传递技术,例如 SOAP, JMS、MSMQ、.NET、TIBCO 和其他 EAI 工具。

    【讨论】:

    • +1 绝对推荐这本书。
    • 我对企业应用架构模式的喜爱超过了它的标题。 :) 但我不会真的认为它是学习如何编写好的 Unix 服务器的地方。
    【解决方案2】:

    Advanced Programming in the Unix Environment, 2nd Edition 是学习 Unix 系统编程细节的绝佳资源。它写得非常好(我最喜欢的英语书籍之一),深度非常好,并且对四种常见环境的关注(在出版时)有助于确保它是全面的。它还不算过时——新操作系统中的新功能可能非常适合解决特定问题,但本书确实很好地涵盖了基础知识。

    当然,缺点是 APUE2nd 错过了一些出色的第三方工具,例如 libevent,这可以大大简化基于套接字的服务器的编程。 (并自动为平台选择 select(2)poll(2)epoll(4)kpoll 和 Windows 事件处理中的“最佳”。)

    至于在线程和进程之间进行选择,归结为:您希望/需要在任务之间共享多少内存?如果每个进程都可以相对独立地运行,则进程可以提供更好的内存保护并且不会降低速度。如果进程需要与彼此的对象或由单个线程“拥有”的对象进行交互,那么线程为共享数据提供了更好的原语。 (但许多人会争辩说,线程的共享内存是对有趣和令人兴奋的错误的邀请。这取决于。)

    【讨论】:

      猜你喜欢
      • 2010-09-18
      • 1970-01-01
      • 2013-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多