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