MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

OpenShift Access Mongodb Pod từ một Pod khác

Ok, đó là một tìm kiếm dài và cuối cùng tôi đã có thể giải quyết nó. Sai lầm đầu tiên của tôi là, các tuyến không phù hợp để tạo kết nối với cơ sở dữ liệu vì chúng chỉ sử dụng giao thức http.

Bây giờ còn lại 2 usecases cho tôi

  1. Bạn đang làm việc trên máy cục bộ của mình và muốn kiểm tra mã mà sau này bạn tải lên OpenShift
  2. Bạn triển khai mã đó cho OpenShift (phải nằm trong cùng một dự án nhưng là một ứng dụng khác với cơ sở dữ liệu)

1. Máy cục bộ

Vì tuyến đường không hoạt động chuyển tiếp cổng được sử dụng. Tôi đã đọc nó trước đây nhưng không thực sự hiểu nó có nghĩa là gì (tôi nghĩ bản thân dịch vụ đó cũng đang tải các cổng rồi).

Khi bạn ở trên máy cục bộ của mình, bạn sẽ thực hiện như sau với oc

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

Bạn sẽ nhận được thông tin mà cổng được chuyển tiếp. Vấn đề là bây giờ trong ứng dụng của bạn, bạn sẽ kết nối với localhost (ngay cả trên máy cục bộ của bạn)

2. Ứng dụng đang chạy trên OpenShift

Sau khi bạn tải mã của mình lên OpenShift (Trong trường hợp của tôi, chỉ cần Thêm vào dự án -> Node.js -> Thêm kho của bạn), localhost sẽ không hoạt động nữa. Miễn là bạn đang ở trong cùng một dự án, bạn sẽ có rất nhiều thông tin trong các biến môi trường của mình. Vì vậy, chỉ cần kiểm tra tên của dịch vụ trong cơ sở dữ liệu của bạn (trong trường hợp của tôi là mongodb) và bạn sẽ tìm thấy máy chủ và cổng để sử dụng

Tóm tắt

Đây là một ví dụ mã nhỏ hoạt động ngay bây giờ, cũng như trên máy cục bộ cũng như trên OpenShift. Tôi đã thiết lập MongoDB lâu dài và trên OpenShift được gọi là mongodb.

Mã không làm được gì nhiều, nhưng nó sẽ tạo kết nối và cho bạn biết rằng nó đã làm được, vì vậy bạn biết nó đang hoạt động.

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. mongoexport trả về ký hiệu khoa học (hàm mũ)

  2. Spring Data MongoDB và allowDiskUse

  3. Cấu trúc liên kết đã bị phá hủy khi sử dụng MongoDB với trình điều khiển gốc và Express.js

  4. Tổng hợp Mongo trong khoảng thời gian

  5. Làm cách nào để tôi có thể $ addToSet một đối tượng vào một mảng và cả $ sort bằng cách sử dụng MongoDB?