【问题标题】:Calling ServiceStack v3 and v4 services from the same upstream code从相同的上游代码调用 ServiceStack v3 和 v4 服务
【发布时间】:2016-09-28 14:53:57
【问题描述】:

我正面临以下情况,希望就如何最好地向前迭代提供一些建议:

我的团队负责编写在 ServiceStack v3 上的 Web 服务。此服务负责聚合来自其他几个 v3 Web 服务的数据以用于 SPA。

我们遇到了一种情况,即我们受限于下游服务的实现——这个特定的服务抽象出数据访问和返回大型结果集的查询偶尔会超时。

我们想重写此服务以添加分页。 (对我们而言)最好的解决方案是利用 ServiceStack v4 中的 AutoQuery。但是,这需要上游代码能够引用 2 个版本的 ServiceStack 包(这可能吗?)。我们还可以为现有服务添加分页,但它使用的内部数据框架不容易更改,而且我们很有可能会崩溃。

有什么想法吗?

【问题讨论】:

  • 很难理解您的情况,但我会尽力回答您的问题。

标签: c# servicestack


【解决方案1】:

是的,您可以在应用程序中加载 2 个版本的 dll。不,不是在开发时(仅运行时),但我很确定这会导致代码执行出现大问题(它将无法找到正确的类版本运行时)。

您的问题也在这里得到解答:Using multiple versions of the same DLL

更好的解决方案是将您的应用程序拆分为 v4 和 v3 部分,使用此问题中也谈到的应用程序域。

原来的问题?

您最初的问题是您有旧的 v3 服务,您想在其中添加分页以解决性能问题?

  • 解决方案可能是将其添加到 v3 部分,但这可能会破坏服务并且必须对其进行测试?
  • 您可以将 3 迁移到 4(我不确定这是否能解决您的问题)。我发现这仍然非常可行。
  • 使用 redis 缓存创建您自己的包装服务(adv:原始代码不变)
  • 内置缓存机制客户端/中介,因此您无需等待长时间的 api 调用。
  • 迁移到自动查询。 (我在这里没有经验)

路线图

我认为您最好对其中一些选项进行研究。我认为你的情况没有一个完美的解决方案,只有优点和缺点。

由您决定承担哪些风险。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    相关资源
    最近更新 更多