代码之家  ›  专栏  ›  技术社区  ›  Gavin

许多小服务与一个大服务

  •  1
  • Gavin  · 技术社区  · 14 年前

    我们正在创建一个Windows服务来从不同的地方导入/导出数据。

    我们的服务目前有如下方法,每个方法都在自己的线程中运行在自己的计时器上。

    ImportFromFoo
    ImportFromFoo2
    ExportToFoo
    ExportToFoo2
    

    从长远来看,将有10多种不同的导入/导出,它们都在不同的计时器上运行在各自的线程中。它们都太过具体,无法成为通用的,因为数据以许多不同的方式发送和检索,并且对每个导入/导出的数据执行不同的操作。我想知道的是,如果我们最好把服务分开,那么每个进出口都有自己的服务。

    据我所知,好处是:

    1. 编程/调试将更简单,因为我们不必担心线程,可以集中精力在自己的环境中对每个模块进行编码/测试。
    2. 一次进出口失败不会拖垮其他人。

    缺点是需要维护更多的项目/服务。

    我只是想知道别人的意见是什么,如果有很多小的服务而不是一个大的服务被视为不好的做法。

    编辑

    所有的服务都将在我们的应用服务器上运行,所以只有我们才能维护它们,而不是用户。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Steve Claridge    14 年前

    我强烈支持创建多个服务。唯一不这样做的原因是,如果从启动10+服务而不是1开始,用户的系统出现了严重的性能问题。

    单独的服务将允许您:

    • 询问用户希望安装哪些服务,以及在安装过程中希望在启动时自动运行哪些服务。
    • 允许用户停止他们不需要手动或通过您的管理工具(如果您有)停止的任何进程。
    • 更简单的部署/升级路径,您可以安装新的服务而不影响已经运行的服务。

    我不认为多个项目是一个问题,任何好主意都应该允许您将它们作为一个整体来管理和构建。

    推荐文章