การเชื่อมต่อ Java กับ MongoDB
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
วัตถุประสงค์
บทความนี้อธิบายการเชื่อมต่อ Java กับ MongoDB บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง
ก่อนเริ่มดำเนินการ
- เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
- ตรวจสอบชื่อ Environment, Region และ Resource เป้าหมายก่อนบันทึกการเปลี่ยนแปลง
- สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production
MongoDBเป็นหนึ่งใน Database NoSQL ที่ได้รับความนิยมมากที่สุดซึ่งสามารถใช้งานได้อย่างง่ายดายภายใน Ruk-Com Cloud ในคู่มือนี้เราจะแสดงวิธีเชื่อมต่อ instance นี้กับแอปของคุณและดำเนินการแบบง่าย ๆ
การสร้าง environment
1. เข้าสู่บัญชี Ruk-Com Cloud ของคุณ
2.การสร้าง environmentด้วย instance MongoDB (มีอยู่ในส่วน NoSQL) Application Server ที่ต้องการสำหรับการติดตั้งแอป อาจอยู่ใน Environment เดียวกันหรือแยกกันก็ได้ (ตัวอย่างเช่น เราได้เพิ่ม Tomcat 10):

คลิกสร้างและรอสักครู่หนึ่งเพื่อให้ Environment ของคุณปรากฏที่ Dashboard
การกำหนดค่า MongoDB
1. ตรวจสอบกล่องจดหมายอีเมลของคุณ จะมีอีเมลเข้ามาพร้อมรายละเอียด Database

2. คลิกปุ่ม Open in browser สำหรับ MongoDB node ภายใน Dashboard ของคุณหรือใช้ URL การเข้าถึงจากอีเมลเพื่อเข้าถึงพาเนล Database ของแอดมิน

เข้าสู่ระบบโดยใช้ข้อมูลจากอีเมลข้างต้น
3. สร้าง Database ใหม่โดยป้อนข้อมูลที่ช่องกรอกข้อมูลด้านบนทางขวา แล้วกดปุ่ม Create Database

4. จากนั้นคุณต้องสร้างผู้ใช้สำหรับ Database นี้ - ให้เข้าไปที่ 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 – ชื่อที่ต้องการของผู้ใช้งาน Database ใหม่ของคุณ
- password - รหัสผ่านสำหรับผู้ใช้
- db_name - ชื่อของ Database ที่ผู้ใช้ที่สร้างขึ้นใหม่จะได้รับสิทธิ์ในการอ่าน / เขียน
5. ตอนนี้กลับไปที่ Dashboard จะเห็นได้ว่ามี user ถูกสร้างแล้ว

หมายเหตุ :
คุณสามารถระบุข้อมูลการเชื่อมต่อที่จำเป็นทั้งหมดได้โดยตรงใน Code ของคุณ (Application) ในตัวอย่างที่กำหนดเราใส่การตั้งค่าเหล่านี้ลงในไฟล์ ซึ่งอ่านโดย Application ทดสอบของเรา (นำเสนอในส่วนคำแนะนำถัดไป)
คลิกปุ่ม Config ถัดจาก Application Server ใน Environment ที่เกี่ยวข้อง (ในกรณีของเรา คือ Tomcat 10)

ในแท็บที่เปิด สร้างไฟล์mydb.cfgใหม่ภายในโฮม Directory และระบุสิ่งต่อไปนี้
host={db_access_url}
dbname={db_name}
user={user_name}
password={password}

โดยที่
- {db_access_URL} - ลิงก์ไปยังพาเนล Database ของแอดมิน (ค้นหาในอีเมลที่เกี่ยวข้องหรือคลิก Open in browser ถัดจาก MongoDB node และคัดลอกจากแถบ address) โดยไม่มีส่วน https://
- {db_name} - ชื่อของ Database ที่สร้างขึ้น (ในกรณีของเรา คือ mongodb-connect)
- {user_name} – ชื่อผู้ใช้งาน Database ที่คุณกำหนดให้กับ Database นี้ (ในกรณีของเรา คือ dbuser)
- {password} – รหัสผ่านของผู้ใช้ที่เกี่ยวข้อง
อย่าลืมที่จะ Save การเปลี่ยนแปลง
การ Deploy Application
1. ตอนนี้คุณสามารถ deploy โปรเจ็กต์กับ Env ที่เตรียมไว้
ตัวอย่าง นี่คือ Code ของ Application ของเราซึ่งมีวัตถุประสงค์เพื่อทดสอบการเชื่อมต่อกับ 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. Application สามารถ deploy โดยใช้ Ruk-Comผู้จัดการฝ่าย Deploy(โดยมีไฟล์ /URL ในเครื่องเป็น source) หรือ Maven (สำหรับการ deploy จาก GIT / SVN)
สำหรับการทดสอบคุณสามารถลองใช้โปรเจ็กต์mongoclient.warที่พร้อมใช้งานของเราซึ่งมีไดรเวอร์ตัวเชื่อมต่อที่เหมาะสมอยู่แล้ว (หรือดาวน์โหลด link # sources และปรับแต่งตามต้องการ)

หมายเหตุ:
ในการเชื่อมต่อโปรเจ็กต์ของคุณกับ Database MongoDB ต้องอัปโหลด Librarymongo-java-driver.jarที่เหมาะสมไปยังโฟลเดอร์ webapps/{app_context}/WEB-INF/lib ของ Server แอปของคุณ ด้วย Application ที่ deploy
3. ด้วยเหตุนี้คุณจะได้รับ Environment ที่คล้ายกับ Environment ด้านล่าง:

ตรวจสอบการเชื่อมต่อ
1. คลิก Open in Browser ถัดจาก Env พร้อมกับแอปตัวอย่างของเราที่ deploy จะเห็นหน้าต่างใหม่เปิดขึ้นพร้อมกับแสดงแบบฟอร์ม MongoDB Manager
พิมพ์จำนวนแถวที่ต้องการ (สำหรับเพิ่มลงใน Database ที่เกี่ยวข้อง) ลงในช่องที่เหมาะสมแล้วคลิกปุ่ม Insert rows
2. รอสักครู่จนกว่าเพจจะหยุดอัปเดตและกลับไปที่พาเนล MongoDB ของแอดมิน

ไปที่ Database mongodb-connect และตรวจสอบคอลเลกชัน mycollection ใหม่ภายใน ซึ่งควรมีจำนวน record ที่ระบุไว้ข้างต้น
อย่างที่เห็นทุกอย่างทำงานได้ดีเนื่องจาก Application สามารถเชื่อมต่อกับ Database ของเราได้ ตอนนี้สามารถใช้พาเนลแอดมินเพื่อดำเนินการอื่น ๆ ที่จำเป็นกับ Database ของคุณในลักษณะเดียวกัน
สิ่งที่ควรรู้
เอกสารของ Ruk-Com ยังมีคู่มือเสริมสำหรับ Server MongoDB ซึ่งอาจเป็นประโยชน์สำหรับผู้ใช้ที่คุ้นเคยและมีประสบการณ์:
- ตั้งค่า link # Master-Slave Replication เพื่อเพิ่มประสิทธิภาพ Database และการเข้าถึงข้อมูลที่ประกอบด้วย
- ตรวจสอบความปลอดภัยของข้อมูลด้วยการปรับการกำหนดการสำรองข้อมูลซึ่งจะช่วยป้องกันการสูญหายของข้อมูลและช่วยให้สามารถกู้คืนข้อมูลได้ในกรณีที่ Server ล้มเหลวโดยไม่คาดคิด
- เรียนรู้วิธีสร้างระยะไกลการเข้าถึงไปยัง Database เพื่อรับความสามารถในการทำงานกับ Client Application ที่เหมาะสม แม้ว่าจะไม่จำเป็นต้องลงชื่อเข้าใช้ Dashboard ของเราก็ตาม
- อ่านคู่มือการนำเข้า/ส่งออกการถ่ายโอนข้อมูลการถ่ายโอนข้อมูลเพื่อค้นหาวิธีสำรองข้อมูลของคุณด้วยตนเองภายใน Dump ไฟล์ จากนั้นเรียกคืนจากการ Dump ที่สร้างไว้ก่อนหน้านี้หากจำเป็น
