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

OpenShift Uzyskaj dostęp do Mongodb Pod z innego Pod

Ok, to było długie poszukiwanie i wreszcie udało mi się go rozwiązać. Mój pierwszy błąd polegał na tym, że trasy nie nadają się do nawiązywania połączenia z bazą danych, ponieważ używają tylko protokołu http.

Teraz pozostały mi 2 przypadki użycia

  1. Pracujesz na swoim lokalnym komputerze i chcesz przetestować kod, który później prześlesz do OpenShift
  2. Wdrażasz ten kod w OpenShift (musi być w tym samym projekcie, ale jest to inna aplikacja niż baza danych)

1. Komputer lokalny

Ponieważ trasa nie działa, używane jest przekierowanie portów. Czytałem to wcześniej, ale tak naprawdę nie rozumiałem, co to znaczy (myślałem, że sama usługa już przekierowuje porty).

Kiedy jesteś na swoim lokalnym komputerze, wykonasz następujące czynności za pomocą oc

oc port-forward <pod-name> <local-port>:<remote-port>

Otrzymasz informację, że port jest przekierowany. Teraz chodzi o to, że w Twojej aplikacji połączysz się teraz z hostem lokalnym (nawet na komputerze lokalnym)

2. Aplikacja działająca na OpenShift

Po przesłaniu kodu do OpenShift (w moim przypadku po prostu Dodaj do projektu --> Node.js --> Dodaj swoje repozytorium), localhost przestanie działać. tak długo, jak jesteś w tym samym projekcie, będziesz mieć wiele informacji w zmiennych środowiskowych. Więc po prostu sprawdź nazwę usługi swojej bazy danych (w moim przypadku mongodb), a znajdziesz hosta i port do użycia

Podsumowanie

Oto mały przykład kodu, który działa teraz, zarówno na komputerze lokalnym, jak i na OpenShift. Skonfigurowałem już persistand MongoDB na OpenShift o nazwie mongodb.

Kod nie robi wiele, ale nawiąże połączenie i powie Ci, że tak, więc wiesz, że działa.

var mongoose = require('mongoose');

// Connect to Mongodb
var username = process.env.MONGO_DB_USERNAME || 'someUserName';
var password = process.env.MONGO_DB_PASSWORD || 'somePassword';

var host = process.env.MONGODB_SERVICE_HOST || '127.0.0.1';
var port = process.env.MONGODB_SERVICE_PORT || '27017';

var database = process.env.MONGO_DB_DATABASE || 'sampledb';
console.log('---DATABASE PARAMETERS---');
console.log('Host: ' + host);
console.log('Port: ' + port);
console.log('Username: ' + username);
console.log('Password: ' + password); 
console.log('Database: ' + database);



var connectionString = 'mongodb://' + username + ':' + password +'@' + host + ':' + port + '/' + database;
console.log('---CONNECTING TO---');
console.log(connectionString);
mongoose.connect(connectionString);

mongoose.connection.once('open', (data) => {
    console.log('Connection has been made');
    console.log(data);
});



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak wypełnić dokument podrzędny w manguście po jego utworzeniu?

  2. Mapreduce w rodzimym sterowniku mongodb ruby

  3. MongoDB $toDecimal

  4. Wskazówki dotyczące przechowywania kopii zapasowych MongoDB w chmurze

  5. MongoDB dodaje się do pola kolekcji łączącej z bazy jeden