什么是服务器设计模式/最佳实践的最佳来源?

时间:2011-05-17 02:04:43

标签: c linux design-patterns pthreads process

我已经搜索了一本关于服务器设计模式的好书。我正在寻找四人帮之类的东西。

概念包括:

- Threaded vs Process vs基于组合的解决方案
- 如何正确分类请求。即我期望来自任何域的请求有限,因此我可能只为每个域分配一定数量的工作人员 - 工人超时
- 民意调查/选择/ epoll用例
- 那些我不知道的事情!
请提出任何建议!
谢谢!

2 个答案:

答案 0 :(得分:3)

两本非常有用的书:

  

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

答案 1 :(得分:1)

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

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

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