sql >> Database >  >> NoSQL >> MongoDB

Akka en ReactiveMongo

Ik zou de driver maken en connection in de hoofdacteur. Ik zou dan de worker-acteurs instellen om een ​​instantie van MongoConnection . te nemen als een constructorargument, zodat elke werknemer een verwijzing naar de verbinding heeft (wat in feite een proxy is voor een pool van verbindingen). Dan, in iets als preStart , laat de hoofdacteur de werkers maken (waarvan ik aanneem dat ze worden gerouteerd) en lever de verbinding als een arg. Een zeer vereenvoudigd voorbeeld zou er als volgt uit kunnen zien:

class MongoMaster extends Actor{
  val driver = new MongoDriver
  val connection = driver.connection(List("localhost"))

  override def preStart = {
    context.actorOf(Props(classOf[MongoWorker], connection).withRouter(FromConfig()))
  } 

  def receive = {
    //do whatever you need here
    ...
  }
}

class MongoWorker(conn:MongoConnection) extends Actor{
  def receive = {
    ...
  }
}

Deze code is niet exact, maar het toont in ieder geval de concepten op hoog niveau die ik heb beschreven.



  1. Verbetering van MongoDB tekstzoekprestaties

  2. Jsonify van PyMongo en Flask bevat escape-slashes

  3. Aggregatie per jaar en maand in MongoDB

  4. Implementeer ScaleGrid DBaaS voor Redis™ in AWS Virtual Private Cloud (VPC)