【问题标题】:How do we share data between two different services我们如何在两个不同的服务之间共享数据
【发布时间】:2009-10-28 02:30:24
【问题描述】:

我目前正在开发一个定期轮询的网络服务。它不存储其状态,每次查询时都会实例化。本质上,它检索其他外部实体的状态,例如数据库并将其返回给请求者。

最近出现了存储状态的需求

  • 需要不断地从特定来源收集数据并存储重要/相关的位
  • 需要在一段时间内收集特定数据源的聚合

我想出了以下想法:

我主要关心的是我使用静态类(本质上是全局类)在两个服务之间共享数据。有没有更好的方法来做到这一点?

编辑:感谢迄今为止的回复。为这个问题的模糊性道歉:只是试图找出在不同服务之间共享数据的最佳方式是什么,并且不确定具体细节(即需要什么)。我正在开发的平台是 .NET 框架,这两个服务都只是作为 Windows 服务托管的 WCF 服务。

数据库路由听起来像是最传统的方式 - 但是我现在不愿意走这条路(主要是为了部署/设置问题;它引入了创建新表等的需要,除了简单地安装软件),用于此时传输相对少量的数据。当然,这在未来可能会发生变化,并且走数据库路线可能是那时要走的路。

除了添加数据库持久层,还有其他方法吗?

【问题讨论】:

  • 您是否使用任何特定的语言或框架?

标签: sharing


【解决方案1】:

如果您需要收集和汇总数据,您可能需要考虑在两层之间使用数据库。还是我误会了什么?

您应该考虑通过更多要求来增强您的问题:几乎所有选项都在这里打开。

【讨论】:

    【解决方案2】:

    当然 - 数据绑定怎么样?我没有太多信息可以在这里继续 - 关于您的平台,但大多数足够先进的系统以某种形式提供它。

    【讨论】:

      【解决方案3】:

      你可以用一些数据库表示来替换你的静态共享数据,在数据库和 web 服务之间有一个缓存层(如 memcached),这样大多数时候数据可以从缓存中快速获得,但可以检索根据需要从数据库中获取。

      【讨论】:

        【解决方案4】:

        感谢您希望保持架构简单。根据您必须查找的项目的数量和持久性,您可能只考虑利用您的文件系统或消息队列。听起来您想要一个文件系统,因为这听起来对您的设计影响最小。

        如果您开始处理数以万计的小文件,您的目录可能会难以导航并且文件查找速度会变慢。我通常会为每个目录拍摄大约 1000 - 10000 个文件,并编写一个可以根据文件名模式生成文件路径的例程。保持子目录的数量均匀很重要,一些文件系统在父目录中有一个limit on the number of subdirectories

        【讨论】:

          猜你喜欢
          • 2016-05-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-24
          • 2013-02-25
          • 2016-09-04
          • 1970-01-01
          • 2020-02-21
          相关资源
          最近更新 更多