在运行时切换db实例

时间:2015-04-01 20:40:38

标签: java mongodb mongodb-java

有两个mongo集群(正面和背面)。服务使用前端集群,后端集群正在使用新数据进行更新。它类似于图形中的双缓冲模式。

还有一个服务(其中包含webservice的tomcat实例)利用当前活动的集群。此服务应在切换过程中起作用。已经开始的工作单元应该使用单个集群来完成,以确保结果的一致性,并且所有新的工作单元都应该使用新的集群。

如何切换这些群集?可能有一些工具,实现它的库?

我可以设想两种方式:

  • 实现代理(类似于mongos)并通过该代理路由服务。代理使用其中一个集群。代理需要知道查询属于哪个工作单元。我想将requestId分成两部分,一部分用于识别工作单元,另一部分用于识别该工作单元内的查询。此方法还需要修改服务以调整requestId
  • 另一种方法是修改服务本身。将有几个MongoClient实例和单个代理实现群集切换。

还有其他建议吗?

0 个答案:

没有答案