sql >> Database >  >> NoSQL >> MongoDB

Mongoose maakt verbinding voor multi-tenancy-ondersteuning in node.js

Ik zou niet aanraden om die afzonderlijke verbindingen handmatig te maken en te beheren. Ik ken de details van uw vereisten voor meerdere tenants (aantal tenants, grootte van databases, verwacht aantal transacties, enz.) niet, maar ik denk dat het beter is om te gaan met iets als De useDb-functie van Mongoose . Dan kan Mongoose alle details van de verbindingspool aan.

bijwerken

De eerste richting die ik zou onderzoeken, is om elke tenant op een afzonderlijk knooppuntproces in te stellen. Er zijn enkele interessante voordelen verbonden aan het uitvoeren van uw tenants in afzonderlijke knooppuntprocessen. Het is logisch vanuit het oogpunt van beveiliging (geïsoleerd geheugen) en vanuit het oogpunt van stabiliteit (een crash van het proces van een huurder heeft geen invloed op andere).

Ervan uitgaande dat u de tenancy baseert op de URL, zou u een proxyserver instellen voor de daadwerkelijke tenantservers. Het is de taak om op basis van die informatie naar de URL te kijken en naar het juiste proces te leiden. Dit is een zeer eenvoudige knooppunt http-proxy opstelling. Elke tenantinstantie kan exact dezelfde codebasis zijn, maar gestart met een andere configuratie (die hen vertelt welke mongo-verbindingsreeks ze moeten gebruiken).

Dit betekent dat u uw daadwerkelijke toepassing kunt ontwerpen alsof deze geen multi-tenant is. Elk proces kent slechts één mongo-database en er is geen multi-tenant-logica nodig. Het stelt u ook in staat om het verkeer later gemakkelijk op te splitsen op basis van belasting. Als u de tenants om prestatieredenen moet opsplitsen, kunt u dit transparant doen op proxyniveau. De DNS kan allemaal hetzelfde blijven en u kunt de server waarop de instanties zich achter de schermen bevinden, gewoon verplaatsen. U kunt zelfs de proxy de verzoeken voor een tenant tussen meerdere servers laten verdelen.




  1. MongoDB Unieke index op meerdere velden

  2. Aangepaste converters instellen in Spring Data Mongo

  3. Alleen naar localhost luisteren op MongoDB

  4. node.js:Mongodb db.collection.find() werkt niet terwijl collection.insert werkt