NServiceBus翻译之持久化技术(三):Using RavenDB In NServiceBus – Connecting
2013-08-18 22:16
369 查看
Last Updated: Nov 28, 2012 10:59AM IST
从NServiceBus3.0开始,RavenDB成为了NServiceBus的机制之一,可以用于持久化timeout,Sagas,Subscriptions等信息。
告诉NServiceBus去使用RavenDB用于持久化,只需要调用Configure.RavenPersistence(),它使用默认的配置,以及如下所述的规约:
1. 假如没有master node被配置,那么NServiceBus将会认为RavenDB服务器运行在http://localhost:8080, 同时也是RavenDB默认的URL.
2. 假如有master node被配置,那么url将会是: http://{masternode}/:8080 3. 假如一个名为 “NServiceBus.Persistence” 的连接字符串被发现,那么connectionString属性的值将会被使用。
这样你就可以完全控制你的终结点将会使用哪个Raven server。
假如NServiceBus检测到任何Raven相关的存储被使用,比如Saga, Subscription,Timeouts等,那么上面所述将会自动为你配置好,所以本质上你不需要明确地去配置Raven,除非你需要覆盖默认配置。
Overriding the defaults
在一些情况下默认的配置也许对你来说不足够好:
· 1 你想要使用自己的连接字符串 –假如你正在为你的数据使用Raven,那么你也许想要share连接字符串,你可以通过Configure.RavenPersistence(string connectionString)签名来实现,其告诉NServiceBus连接到字符串指定的服务器,RavenDB默认的连接字符串是“RavenDB”.
· 2 你想要明确一个特定数据库名称 – 假如你想要在代码中控制数据库的名称,而不是通过配置实现,那么你可以使用Configure.RavenPersistence(string connectionString,string databaseName) 签名. 这在tenant scenario下是非常有用的。
What database will be used?
在连接到Raven服务器之后,我们需要决定使用哪个真实的数据库。 除非我们能够在连接字符串中发现默认的数据库,否则NServiceBus将会使用终结点名称来作为数据库的名称。 所以假如你的终结点名称是“MyServer”那么数据库的名称也将会是 “MyServer”. 每个终结点都会有一个单独的数据库,除非你明确地去使用连接字符串来覆盖这个默认行为。 如果数据库不存在,RavenDB会自动创建。
关于终结点名称这个概念的详细的解释可以在这里找到: here andin this FAQentry.
Can I use the IDocumentStore used byNServiceBus for my own data?
不行,Raven客户端是被整合到了NServiceBus程序集中,所以假如你为了自己的目的要去使用Raven,那么你需要去参考Raven客户端,以及设置你自己的文档存储。
How do I look at the data?
只需要打开浏览器,输入Raven服务器的URL即可,这将会打开the Raven DB managementstudio.
从NServiceBus3.0开始,RavenDB成为了NServiceBus的机制之一,可以用于持久化timeout,Sagas,Subscriptions等信息。
告诉NServiceBus去使用RavenDB用于持久化,只需要调用Configure.RavenPersistence(),它使用默认的配置,以及如下所述的规约:
1. 假如没有master node被配置,那么NServiceBus将会认为RavenDB服务器运行在http://localhost:8080, 同时也是RavenDB默认的URL.
2. 假如有master node被配置,那么url将会是: http://{masternode}/:8080 3. 假如一个名为 “NServiceBus.Persistence” 的连接字符串被发现,那么connectionString属性的值将会被使用。
这样你就可以完全控制你的终结点将会使用哪个Raven server。
假如NServiceBus检测到任何Raven相关的存储被使用,比如Saga, Subscription,Timeouts等,那么上面所述将会自动为你配置好,所以本质上你不需要明确地去配置Raven,除非你需要覆盖默认配置。
Overriding the defaults
在一些情况下默认的配置也许对你来说不足够好:
· 1 你想要使用自己的连接字符串 –假如你正在为你的数据使用Raven,那么你也许想要share连接字符串,你可以通过Configure.RavenPersistence(string connectionString)签名来实现,其告诉NServiceBus连接到字符串指定的服务器,RavenDB默认的连接字符串是“RavenDB”.
· 2 你想要明确一个特定数据库名称 – 假如你想要在代码中控制数据库的名称,而不是通过配置实现,那么你可以使用Configure.RavenPersistence(string connectionString,string databaseName) 签名. 这在tenant scenario下是非常有用的。
What database will be used?
在连接到Raven服务器之后,我们需要决定使用哪个真实的数据库。 除非我们能够在连接字符串中发现默认的数据库,否则NServiceBus将会使用终结点名称来作为数据库的名称。 所以假如你的终结点名称是“MyServer”那么数据库的名称也将会是 “MyServer”. 每个终结点都会有一个单独的数据库,除非你明确地去使用连接字符串来覆盖这个默认行为。 如果数据库不存在,RavenDB会自动创建。
关于终结点名称这个概念的详细的解释可以在这里找到: here andin this FAQentry.
Can I use the IDocumentStore used byNServiceBus for my own data?
不行,Raven客户端是被整合到了NServiceBus程序集中,所以假如你为了自己的目的要去使用Raven,那么你需要去参考Raven客户端,以及设置你自己的文档存储。
How do I look at the data?
只需要打开浏览器,输入Raven服务器的URL即可,这将会打开the Raven DB managementstudio.
相关文章推荐
- NServiceBus翻译之持久化技术(二):Using RavenDB In NServiceBus – Installing
- NServiceBus翻译之持久化技术(一):Persistence In NServiceBus
- NServiceBus翻译之持久化技术(四):How To Debug RavenDB Through Fiddler Using NServiceBus
- NServiceBus VS MassTransit 从 stackoverflow.com 翻译而来,希望对这两个技术比较关心的同学有帮助
- NServiceBus官方文档翻译(二)NServiceBus 入门
- NserviceBus翻译之FAQ:MsmqTransportConfig配置项
- Azure Messaging-ServiceBus Messaging消息队列技术系列-索引篇
- NServiceBus入门:启程(Introduction to NServiceBus: Getting started)
- Azure Messaging-ServiceBus Messaging消息队列技术系列6-消息回执
- Azure Messaging-ServiceBus Messaging消息队列技术系列7-消息事务
- Azure Messaging-ServiceBus Messaging消息队列技术系列7-消息事务
- Azure Messaging-ServiceBus Messaging消息队列技术系列4-复杂对象消息是否需要支持序列化和消息持久化
- Azure Messaging-ServiceBus Messaging消息队列技术系列5-重复消息:at-least-once at-most-once
- Azure Messaging-ServiceBus Messaging消息队列技术系列1-基本概念和架构
- Transaction handling in Oracle Service Bus
- 翻译:Announcing Zuul: Edge Service in the Cloud
- 翻译作品一之Service Banner Fingerprinting in C
- Azure Messaging-ServiceBus Messaging消息队列技术系列8-服务总线配额
- 翻译作品一之Service Banner Fingerprinting in C
- Azure Messaging-ServiceBus Messaging消息队列技术系列6-消息回执