【发布时间】:2014-12-22 01:52:38
【问题描述】:
在成功开发具有多个 ServiceStack 服务的应用程序后,我们正在转移到其他测试环境,其中很多是由于我们运行 SAAS 模型(也称为多租户)。我想在其中一些环境中重用一些基础基础设施服务,主要是 Redis 和 RabbitMQ。
我们使用 IAppSetting 接口在运行时将我们的配置从多个来源拉到一个内聚的设置对象中,然后是过滤层。由于 tier 驱动每个环境的配置,因此使用 Tier 为任何 RabbitMQ 消息队列添加前缀,并为 Redis 将使用的任何生成的缓存键添加前缀是有意义的,从而为每个环境提供冲突保护。
下面是一个例子:
RabbitMQ => "这里有一些 MQ 方法" => "mq:qa1.Outbound.inq"
Redis => "这里有一些 Redis 方法" => "urn:qa1.somePoco:123"
这是一个示例配置和各种环境
<appSettings>
<add key="Tier" value="qa1" />
<!--<add key="Tier" value="dev" />-->
<!--<add key="Tier" value="tst" />-->
<!--<add key="Tier" value="stg" />-->
<!--<add key="Tier" value="prod" />-->
</appSettings>
谢谢你, 斯蒂芬
【问题讨论】:
标签: servicestack