我已经搜索了一本关于服务器设计模式的好书。我正在寻找四人帮之类的东西。
概念包括:
- Threaded vs Process vs基于组合的解决方案
- 如何正确分类请求。即我期望来自任何域的请求有限,因此我可能只为每个域分配一定数量的工作人员
- 工人超时
- 民意调查/选择/ epoll用例
- 那些我不知道的事情!
请提出任何建议!
谢谢!
答案 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事件处理的“最佳”。)
至于在线程和进程之间进行选择,它归结为:您在任务之间需要/需要多少内存共享?如果每个进程可以相对隔离运行,则进程提供更好的内存保护并且不会降低速度。如果进程需要与彼此的对象进行交互,或者对象由单个线程“拥有”,则线程为共享数据提供了更好的原语。 (但是很多人会争辩说,线程的共享内存是对有趣和令人兴奋的错误的邀请。它取决于。)