【问题标题】:Handling large object in stateless environment在无状态环境中处理大对象
【发布时间】:2013-05-09 12:19:29
【问题描述】:

我们有各种 Windows 服务,它们加载大量数据,即主要是设置,从数据库到一个对象,每当调用我们的各种 .net 远程处理功能时都会使用该对象(我知道它已经过时了!!)。让这个对象在内存中包含所有这些设置可以让我们不断地查询数据库,或者在执行查询时从缓存中加载数据。

这个“大”对象中的设置是数据的集合,来自 id、路径、文本等......

我们希望从 .net 远程处理转移到 wcf 并可能摆脱我们的 Windows 服务并在 IIS(最终是 Azure)下运行很多东西,但是由于是无状态的,我想知道我们应该如何处理这个问题?

1) 你能想到的最好的方法是什么?最好根据经验。

向我提出的一个建议是将所有这些返回给客户端,将其缓存并在进行 wcf 调用时仅使用相关设置。

2) 我们拥有的众多服务是轮询服务、持续监控、数据库、文件位置、ftp 位置等……您建议如何在无状态环境中处理这些问题?我看不出这将如何处理。

我们使用 SQL Server,但我不想过于依赖内置功能,因为我们可能不得不支持 mySQL 和 Oracle 之类的功能。

谢谢。

蒂埃里

【问题讨论】:

    标签: performance wcf stateless


    【解决方案1】:

    您可以将这些设置存储在配置文件的AppSettings 部分(Web.config 用于 IIS)。使用ConfigurationManager 类,您可以根据需要检索相关值。

    如果您希望存储 settings 对象static 实例,建议您实现一个 Singleton 模式。 Jon Skeet 的article 是一个很好的起点。

    希望这会有所帮助。

    【讨论】:

    • 使用 Appsettings 不起作用。对象、字典、列表等太多了。至于单例模式,目前已经在使用它,但我正试图摆脱它。我们有一个存储所有这些信息的大对象,它被各种 Windows 服务、工作流等共享……如果我们想要迁移到无状态环境,我们必须弄清楚如何以不同的方式访问这些信息比在内存中加载大量但每次都从 sql server 读取所有这些设置不是一种选择。想看看它是如何完成的。
    猜你喜欢
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 2021-10-07
    • 2020-09-06
    相关资源
    最近更新 更多