2011-05-17 114 views
4

我已经搜索了一段时间了解一本涵盖服务器设计模式的好书。我正在寻找一些沿着四人帮的路线。什么是服务器设计模式/最佳实践的最佳来源?

概念包括:

- 螺纹VS流程VS基于组合的解决方案
- 如何正确类选请求。即我期望来自任何域的请求只有有限,所以我只能为每个域分配一定数量的工作人员。
- 工作者超时
- 民意调查/选择/ epoll用例
- 而那些我不知道的东西!

请任何建议!

谢谢!

回答

3

两个非常有用的书:

该书企业集成模式 提供一致 词汇和视觉标号t 描述了大规模整合 技术的许多实施方案。它还在 中详细探讨了异步消息传递体系结构的优点和限制 。您将学习如何将 应用程序连接到邮件系统的设计代码,以及如何将邮件路由到正确的目标以及如何监视邮件系统的健康状况。该 模式书中是 技术无关,来到生活 在不同 通讯技术,如SOAP, JMS,MSMQ,.NET,TIBCO和其他EAI 工具实现的例子。

+0

+1绝对推荐这本书。 – 2011-05-17 02:11:13

+0

我喜欢_企业应用程序架构模型_比标题建议更多。 :)但我不会认为它是学习如何编写好的Unix服务器的地方。 – sarnold 2011-05-17 02:17:24

1

Advanced Programming in the Unix Environment, 2nd Edition是学习Unix系统编程细节的绝佳资源。这本书写得非常好(我最喜欢的英语书籍之一),深度非常好,关注四种常见环境(发布时)有助于确保它是全面的。它不会太糟糕 - 新版操作系统中的新功能对于特定问题可能非常棒,但本书确实涵盖了基本知识。

当然,缺点是APUE2nd错过了一些梦幻般的第三方工具,如libevent,这可以使编程基于套接字的服务器变得更容易。 (而且会自动选择的select(2)poll(2)epoll(4)kpoll和Windows事件“最好”的处理,为平台)。

至于线程和进程之间进行选择,可以归结为:多少内存共享你需要/需要在任务之间?如果每个进程可以运行相对独立,进程提供更好的内存保护和速度惩罚。如果进程需要与对方的对象或单个线程“拥有”的对象进行交互,那么线程为共享数据提供了更好的基元。 (但是很多人会认为线程的共享内存是对有趣和令人兴奋的错误的邀请。它取决于。)