MongoDB เป็นหนึ่งในฐานข้อมูล NoSQL ที่ได้รับความนิยมมากที่สุดซึ่งสามารถใช้งานได้อย่างง่ายดายภายใน Ruk-Com Cloud ในคู่มือนี้เราจะแสดงวิธีเชื่อมต่อ instance นี้กับแอปของคุณและดำเนินการแบบง่าย ๆ
การสร้าง environment
1. เข้าสู่บัญชี Ruk-Com Cloud ของคุณ
2. การสร้าง environment ด้วย instance MongoDB (มีอยู่ในส่วน NoSQL) แอปพลิเคชันเซิร์ฟเวอร์ที่ต้องการสำหรับการติดตั้งแอป อาจอยู่ใน Environment เดียวกันหรือแยกกันก็ได้ (ตัวอย่างเช่น เราได้เพิ่ม Tomcat 10):
คลิก Create และรอสักครู่หนึ่งเพื่อให้ Environment ของคุณปรากฏที่แดชบอร์ด
การกำหนดค่า MongoDB
1. ตรวจสอบกล่องจดหมายอีเมลของคุณ จะมีอีเมลเข้ามาพร้อมรายละเอียดฐานข้อมูล
2. คลิกปุ่ม Open in browser สำหรับ MongoDB node ภายในแดชบอร์ดของคุณหรือใช้ URL การเข้าถึงจากอีเมลเพื่อเข้าถึงพาเนลฐานข้อมูลของแอดมิน
เข้าสู่ระบบโดยใช้ข้อมูลจากอีเมลข้างต้น
3. สร้างฐานข้อมูลใหม่โดยป้อนข้อมูลที่ช่องกรอกข้อมูลด้านบนทางขวา แล้วกดปุ่ม Create Database
4. จากนั้นคุณต้องสร้างผู้ใช้สำหรับฐานข้อมูลนี้ – ให้เข้าไปที่ Web SSH ของ instance Mongodb และเข้าใช้ mongodb โดยใช้คำสั่ง
mongo -u 'admin' -p '[ใส่รหัสผ่านในตรงนี้]'
5. หลังจากนั้นเลือก database โดยใช้คำสั่ง
use admin
จากนั้นพิมพ์คำสั่งต่อไปนี้:
db.createUser({ user: "user_name", pwd: "password", roles:[{ role: "readWrite", db: "db_name"}]})
โดยที่:
- user_name – ชื่อที่ต้องการของผู้ใช้งานฐานข้อมูลใหม่ของคุณ
- password – รหัสผ่านสำหรับผู้ใช้
- db_name – ชื่อของฐานข้อมูลที่ผู้ใช้ที่สร้างขึ้นใหม่จะได้รับสิทธิ์ในการอ่าน / เขียน
5. ตอนนี้กลับไปที่แดชบอร์ด จะเห็นได้ว่ามี user ถูกสร้างแล้ว
หมายเหตุ :
คุณสามารถระบุข้อมูลการเชื่อมต่อที่จำเป็นทั้งหมดได้โดยตรงในโค้ดของคุณ (แอปพลิเคชัน) ในตัวอย่างที่กำหนดเราใส่การตั้งค่าเหล่านี้ลงในไฟล์ ซึ่งอ่านโดยแอปพลิเคชันทดสอบของเรา (นำเสนอในส่วนคำแนะนำถัดไป)
คลิกปุ่ม Config ถัดจากแอปพลิเคชันเซิร์ฟเวอร์ใน Environment ที่เกี่ยวข้อง (ในกรณีของเรา คือ Tomcat 10)
ในแท็บที่เปิด สร้างไฟล์ mydb.cfg ใหม่ภายในโฮมไดเร็กทอรีและระบุสิ่งต่อไปนี้
host={db_access_url}
dbname={db_name}
user={user_name}
password={password}
โดยที่
- {db_access_url} – ลิงก์ไปยังพาเนลฐานข้อมูลของแอดมิน (ค้นหาในอีเมลที่เกี่ยวข้องหรือคลิก Open in browser ถัดจาก MongoDB node และคัดลอกจากแถบ address) โดยไม่มีส่วน https://
- {db_name} – ชื่อของฐานข้อมูลที่สร้างขึ้น (ในกรณีของเรา คือ mongodb-connect)
- {user_name} – ชื่อผู้ใช้งานฐานข้อมูล ที่คุณกำหนดให้กับฐานข้อมูลนี้ (ในกรณีของเรา คือ dbuser)
- {password} – รหัสผ่านของผู้ใช้ที่เกี่ยวข้อง
อย่าลืมที่จะ Save การเปลี่ยนแปลง
การ Deploy แอปพลิเคชัน
1. ตอนนี้คุณสามารถ deploy โปรเจ็กต์กับ Env ที่เตรียมไว้
ตัวอย่าง นี่คือโค้ดของแอปพลิเคชันของเราซึ่งมีวัตถุประสงค์เพื่อทดสอบการเชื่อมต่อกับ MongoDB node
MongoManager.java :
package example;
import com.mongodb.*;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.Properties;
public class MongoManager {
static String host, dbname, user, password;
public void addData(int repeats) {
try {
Properties prop = new Properties();
prop.load(new FileInputStream(System.getProperty("user.home") + "/mydb.cfg"));
host = prop.getProperty("host").toString();
dbname = prop.getProperty("dbname").toString();
user = prop.getProperty("user").toString();
password = prop.getProperty("password").toString();
System.out.println("host: " + host + "\ndbname: " + dbname + "\nuser: " + user + "\npassword: " + password);
MongoCredential credential = MongoCredential.createCredential(user, dbname, password.toCharArray());
MongoClient mongoClient = new MongoClient(new ServerAddress(host), Arrays.asList(credential));
MongoDatabase db = mongoClient.getDatabase(dbname);
try {
db.getCollection("mycollection");
} catch (Exception e) {
db.createCollection("mycollection", null);
System.out.println("Repeats: " + repeats);
for (int i = 1; i <= repeats; i++) {
Document document = new Document("data", new Date());
db.getCollection("mycollection").insertOne(document);
System.out.println("INFO: row added " + document);
}
} finally {
mongoClient.close();
}
} catch (IOException ex) {
}
}
}
2. แอปพลิเคชันสามารถ deploy โดยใช้ Ruk-Com Deployment Manager (โดยมีไฟล์ /URL ในเครื่องเป็น source) หรือ Maven (สำหรับการ deploy จาก GIT / SVN)
สำหรับการทดสอบคุณสามารถลองใช้โปรเจ็กต์ mongoclient.war ที่พร้อมใช้งานของเราซึ่งมีไดรเวอร์ตัวเชื่อมต่อที่เหมาะสมอยู่แล้ว (หรือดาวน์โหลด link # sources และปรับแต่งตามต้องการ)
หมายเหตุ :
ในการเชื่อมต่อโปรเจ็กต์ของคุณกับฐานข้อมูล MongoDB ต้องอัปโหลดไลบรารี mongo-java-driver.jar ที่เหมาะสมไปยังโฟลเดอร์ webapps/{app_context}/WEB-INF/lib ของเซิร์ฟเวอร์แอปของคุณ ด้วยแอปพลิเคชันที่ deploy
3. ด้วยเหตุนี้คุณจะได้รับ Environment ที่คล้ายกับ Environment ด้านล่าง:
ตรวจสอบการเชื่อมต่อ
1. คลิก Open in Browser ถัดจาก Env พร้อมกับแอปตัวอย่างของเราที่ deploy จะเห็นหน้าต่างใหม่เปิดขึ้นพร้อมกับแสดงแบบฟอร์ม MongoDB Manager
พิมพ์จำนวนแถวที่ต้องการ (สำหรับเพิ่มลงในฐานข้อมูลที่เกี่ยวข้อง) ลงในช่องที่เหมาะสมแล้วคลิกปุ่ม Insert rows
2. รอสักครู่จนกว่าเพจจะหยุดอัปเดตและกลับไปที่พาเนล MongoDB ของแอดมิน
ไปที่ฐานข้อมูล mongodb-connect และตรวจสอบคอลเลกชัน mycollection ใหม่ภายใน ซึ่งควรมีจำนวน record ที่ระบุไว้ข้างต้น
อย่างที่เห็นทุกอย่างทำงานได้ดีเนื่องจากแอปพลิเคชันสามารถเชื่อมต่อกับฐานข้อมูลของเราได้ ตอนนี้สามารถใช้พาเนลแอดมินเพื่อดำเนินการอื่น ๆ ที่จำเป็นกับฐานข้อมูลของคุณในลักษณะเดียวกัน
สิ่งที่ควรรู้
เอกสารของ Ruk-Com ยังมีคู่มือเสริมสำหรับเซิร์ฟเวอร์ MongoDB ซึ่งอาจเป็นประโยชน์สำหรับผู้ใช้ที่คุ้นเคยและมีประสบการณ์:
- ตั้งค่า link # Master-Slave Replication เพื่อเพิ่มประสิทธิภาพฐานข้อมูลและการเข้าถึงข้อมูลที่ประกอบด้วย
- ตรวจสอบความปลอดภัยของข้อมูลด้วยการปรับ Backups Scheduling ซึ่งจะช่วยป้องกันการสูญหายของข้อมูลและช่วยให้สามารถกู้คืนข้อมูลได้ในกรณีที่เซิร์ฟเวอร์ล้มเหลวโดยไม่คาดคิด
- เรียนรู้วิธีสร้าง Remote Access ไปยังฐานข้อมูล เพื่อรับความสามารถในการทำงานกับไคลเอนต์แอปพลิเคชันที่เหมาะสม แม้ว่าจะไม่จำเป็นต้องลงชื่อเข้าใช้แดชบอร์ดของเราก็ตาม
- อ่านคู่มือ Dump Import/Export การถ่ายโอนข้อมูลเพื่อค้นหาวิธีสำรองข้อมูลของคุณด้วยตนเองภายใน Dump ไฟล์ จากนั้นเรียกคืนจากการ Dump ที่สร้างไว้ก่อนหน้านี้หากจำเป็น