如何在 NserviceBus/Persistence SQL 实例中配置不同的 table 名称:
How to configure different table names in NserviceBus/Persistence SQL instance:
我们计划在多个 NSB 主机之间共享同一个持久性数据库 (NserviceBus/Persistence)。
在这种情况下,我们需要为 TimeOutEntity、MessageStore、OutboxRecord 使用不同的 table 名称
根据主机区分。
有没有一种配置方法可以指定主机在 NSB 持久性数据库中使用的 table 名称。
我建议不要使用不同的 table 名称来存储每个端点,而是使用相同的名称,但使用不同的模式,与 endpoint/business 匹配。使用开箱即用的 table 名称意味着更轻松的开发运营体验,因为您可以准确地指向 tables 作为端点。
要更改 SQL 持久性的架构,您可以执行以下操作:
var persistence = endpointConfiguration.UsePersistence<SqlPersistence>();
persistence.Schema("myschema");
对于 SQL 运输,您可以这样做:
var transport = endpointConfiguration.UseTransport<SqlServerTransport>();
transport.DefaultSchema("myschema");
//For error/audit queues
transport.UseSchemaForQueue("error", "myschema");
transport.UseSchemaForQueue("audit", "myschema");
有关部署选项(多目录与架构)的信息,请查看文档页面 here。
我们计划在多个 NSB 主机之间共享同一个持久性数据库 (NserviceBus/Persistence)。
在这种情况下,我们需要为 TimeOutEntity、MessageStore、OutboxRecord 使用不同的 table 名称 根据主机区分。
有没有一种配置方法可以指定主机在 NSB 持久性数据库中使用的 table 名称。
我建议不要使用不同的 table 名称来存储每个端点,而是使用相同的名称,但使用不同的模式,与 endpoint/business 匹配。使用开箱即用的 table 名称意味着更轻松的开发运营体验,因为您可以准确地指向 tables 作为端点。
要更改 SQL 持久性的架构,您可以执行以下操作:
var persistence = endpointConfiguration.UsePersistence<SqlPersistence>();
persistence.Schema("myschema");
对于 SQL 运输,您可以这样做:
var transport = endpointConfiguration.UseTransport<SqlServerTransport>();
transport.DefaultSchema("myschema");
//For error/audit queues
transport.UseSchemaForQueue("error", "myschema");
transport.UseSchemaForQueue("audit", "myschema");
有关部署选项(多目录与架构)的信息,请查看文档页面 here。