MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Akka i reaktywnyMongo

Utworzyłbym driver i connection w głównym aktorze. Następnie ustawiłbym aktorów roboczych, aby wzięli instancję MongoConnection jako argument konstruktora, aby każdy pracownik miał odniesienie do połączenia (które w rzeczywistości jest proxy do puli połączeń). Następnie w coś takiego jak preStart , poproś głównego aktora o utworzenie pracowników (które, jak zakładam, są routowane) i dostarczenie połączenia jako arg. Bardzo uproszczony przykład może wyglądać tak:

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 = {
    ...
  }
}

Ten kod nie jest dokładny, ale przynajmniej pokazuje koncepcje wysokiego poziomu, które opisałem.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb:obliczone connectToField wewnątrz graphlookup

  2. ClusterControl — wszystkie najważniejsze funkcje i ulepszenia z 2017 roku

  3. Jak wyświetlić pola dokumentu w powłoce mongo?

  4. Jak używać GraphQL z Mongoose i MongoDB bez tworzenia modeli Mongoose?

  5. Uruchomienie PHP Nie można załadować biblioteki dynamicznej php_mongo.dll