【发布时间】:2013-09-09 10:05:15
【问题描述】:
我正在尝试找到在参与者与集群工作人员之间共享相同连接池的最佳方法。我有以下结构:
Master Actor -> Worker Actors(最多 100 个或更多)-> MongoDB
在worker 和MongoDB 之间我想放置reactivemongo,但是我不确定如何在所有actor 之间提供连接池共享。
根据 reactivemongo 文档:
一个 MongoDriver 实例管理一个actor系统;一个连接管理一个连接池。一般来说,MongoDriver 或创建 MongoConnection 永远不会被实例化超过一次。您可以提供一个或多个服务器的列表;驱动程序会猜测它是独立服务器还是副本集配置。即使只有一个副本节点,驱动程序也会探测其他节点并自动添加它们。
我应该只在 Master Actor 中创建它,然后与每条消息捆绑在一起吗? 所以,这将在 Master actor 中:
val driver = new MongoDriver
val connection = driver.connection(List("localhost"))
然后我在消息中将连接传递给演员。还是应该在每个 Work Actor 中查询一个连接并在消息中只传递驱动程序?
非常感谢任何帮助。 谢谢。
【问题讨论】:
标签: mongodb scala akka actor reactivemongo