รู้ไว้ใช่ว่า ใส่บ่าแบกหาม 💥💥
Database ถ้ามีผู้ใช้งานไม่กี่คน
ก็คงไม่มีทางล่มง่ายๆ
และข้อมูลคงไม่สูญหายง่ายๆ เช่นกัน
.
แต่ทว่าเวลาใช้งานจริง ในบางระบบ เช่น เว็บแอพพลิเคชั่น
โอ้วแม่เจ้า จะมีผู้ใช้เยอะมากมาย
ก็ย่อมมีการติดต่อไปยัง database เป็นปริมาณเยอะมาก
ซึ่งฮอตไม่แพ้กับเนตไอดอลชื่อดังเลยทีเดียว
.
ซึ่งอาจทำให้ database ล่มได้
ส่งผลให้ฝั่งหน้าเว็บแจ้ง error บอกโจร 500 ขึ้นบ้าน
เป็นอันรู้กันว่าระบบหลังบ้าน มีอะไรซักอย่างที่ตายแหละ 🥶
.
นี้แค่บทลงโทษเบาะๆ
แต่ถ้าเกิดโชคร้ายซวยสุดสุด ข้อมูลหายไป
บทลงโทษคือคอขาดคนทำแน่ๆ
.
ด้วยเหตุนี้จึงต้องใช้วิชานินแยกเงาพันร่างอย่างนารูโตะ
ทำให้ database โคลนนิ่งตัวเอง แยกออกเป็นหลายๆ ตัว
แล้วกระจายไปตาม Node ต่าง ๆ
(กระจายไปตามเครื่อง server ต่างๆ หรือจะ virtual machine ก็ได้)
.
วิธีนี้จะทำให้ database บริหารเสน่ห์ได้ดีเลยทีเดียว
เพราะถ้าเกิด database ก้อนหนึ่งตายไป
ก้อนที่เหลือก็ยังทำงานได้อยู่ ไม่ล่มหายตายจากง่ายๆ
อีกทั้งก็มีข้อมูล backup มีเก็บสำรองไว้หลายก้อน
แลดูปลอดภัยดีออก
.
คำถาม ในเมื่อมี database แยกร่างเป็นหลายก้อน 🤔
แล้วแต่ละก้อนมันสื่อสารระหว่างกันยังไงหว้า?
พวกเขามีข้อมูลตรงกันได้อย่างไร?
.
คำตอบ 😁
1. โดยปกติเขาจะกำหนดให้ database ก้อนใดก้อนหนึ่ง
ทำหน้าที่เป็นหัวหน้าแก๊ง เรียกว่า master
.
2. ส่วนก้อนที่เหลือจะเป็นลูกสมุน เรียกว่า slave หรือ secondary
.
3. เวลา database ถูกเขียนจากโลกภายนอก (write) เช่น ถูกเขียนจากเว็บแอพลิเคชั่น ก็จะต้องมาเขียน (write) ที่หัวหน้าแก๊ง (master) คนเดียว
ส่วนลูกสมุนนะเหรอ เอ็งไม่มีสิทธิ
.
4. จากนั้นหัวหน้าแก๊งก็จะถ่ายสำเนาตัวเอง (replicate)
ก็อปปี้ข้อมูลไปให้ลูกสมุน (slave) ทุกตัว
เพียงเท่านี้ลูกน้องก็จะมีข้อมูลตรงกันกับลูกพี่เด๊ะ
.
5. แต่ทว่าเวลาพวกเขาเหล่า database ถูกอ่าน (read) จากโลกภายนอก เช่น ถูกอ่านจากเว็บแอพลิเคชั่น
ก็เข้ามาอ่านได้ทั้งกับหัวหน้าแก๊ง (master)
หรือจะอ่านที่ลูกสมุน (slave) ก็ได้นะ
.
🖋 ด้วยเหตุนี้ database ทุกก้อน (master กับ slave)
ก็จะมีจังหวะหัวใจตรงกัน ข้อมูลสอดประสานตรงกัน 💓
.
แล้วถ้าวันดีคืนดี เกิดดวงซวย ราหูเข้าเรือนมรณะ ชะตาขาด
อยู่ดีๆ หัวหน้าแก๊ง (master) ตายหรือมีอันเป็นไปซักอย่าง
เมื่อนั้นตัวลูกสมุน (slave) ตัวใดตัวหนึ่ง
ก็จะถูกแต่งตั้งให้ดำรงตำแหน่งหัวหน้าแก๊ง (master) คนต่อไปแทน
.
หมายเหตุ ✍️
คอนเซ็ปต์แยกร่าง database แล้วแบ่งเป็น master กับ slave
ก็จะมี database หลายยี่ห้อที่เอาวิธีนี้ไปใช้งาน เช่น
MariaDB, MySQL, Microsoft SQL, MongoDB เป็นต้น
.
ส่วน Database ยี่ห้ออื่นเช่น Oracle ก็จะใช้วิธีอื่น
อันนี้เล่าเฉพาะวิธี master กับ slave ง่ายสุดแหละ
.
😜 หมายเหตุ ในมุม #โปรแกรมเมอร์ ก็ไม่ต้องรู้หรอกว่าจะเซท database แบบ master กับ slave ทำยังไง
เพราะทำงานจริงเขาจะมีทีมงานดูแลเรื่องนี้ให้แหละ
แยกทีมกัน
อันนี้เล่าสู้กันฟังเฉยๆ
.....จบ
.
.
.
✍เขียนโดย โปรแกรมเมอร์ไทย thai programmer
同時也有10部Youtube影片,追蹤數超過27萬的網紅悟訢,也在其Youtube影片中提到,Twitch 聊天室傳送門: http://www.twitch.tv/alanlovemiku/chat 使用模組包:FTB Wanderlust Reloaded http://goo.gl/WmVd0J 背景音樂(隨機撥放): http://goo.gl/4XNxOq ~*~*~*~...
node server 在 BorntoDev Facebook 八卦
🤣 Sandbox ไหนเป็นยังไง แอดไม่รู้ แต่ที่ รู้ ๆ Sandbox นี้ดีต่อใจสาย Dev แน่ ๆ (แถมยังใช้ฟรีด้วยยย !!)
.
ใครที่กำลังมองหาที่ ๆ สามารถเขียนโค้ดสำหรับสร้างเว็บ - เว็บแอป โดยไม่ต้อง Setting อะไรให้วุ่นวาย และ ยังใช้งานพร้อมกันกับเพื่อน ๆ แสดงผลเหมือน Deploy จริงได้แบบทันที ต้องเว็บนี้เลย https://codesandbox.io/
.
✅ ที่มีความเด็ดตรงที่มี Template ของเครื่องมือกว่า 32 แบบ !! ไม่ว่าจะเป็น React, Vue, Angular, TypeScript, Node HTTP Server, Ember และ อื่น ๆ อีกเพียบ ที่แค่เรา "คลิก" ทีเดียว ก็พร้อมให้เราเขียนออกมาในรูปแบบออนไลน์ได้แล้วว !!
.
ใช่แล้วหละ เราสามารถจัดการ Files ต่าง ๆ สร้าง Folder ได้ตามใจชอบผ่านเว็บเขาเลย และ ที่สำคัญฟรีด้วยจ้า (แต่เขาให้แค่ 20MB นะ ! ถ้าใครอยากได้มากกว่านี้เริ่มต้นเดือนละ 7$ เท่านั้น)
.
⭐ แอดว่าเหมาะมาก ๆ ถ้าใครอยากจะทำขึ้นงานแบบไว ๆ / เอาไว้ติวกับเพื่อน ๆ / สร้าง project ขนาดย่อม ๆ ที่ไม่ใช้พื้นที่เยอะ / อยากแปะให้เพื่อนรีวิวโค้ดแบบ realtime ก็ใช้ประโยชน์ได้ดีจัดด ๆ
.
เอาเป็นว่า โพสต์นี้แอดไม่ได้ตังจากเขาซักบาท อยากเล่น Sandbox ที่ไม่ใช่แค่ปราสาททราย แต่เป็นของดีที่ใช้ง่ายจัด ๆ ก็ไปลองกันเองได้เลยจ้าา 555555 >> https://codesandbox.io/
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
node server 在 BorntoDev Facebook 八卦
🔥 "กำลังทรัพย์ไม่เยอะ แต่กำลังใจเต็มร้อย อยากทำ Web App ด้วย Node.js แต่ไม่รู้จะหา Server ไหนมารัน ต้องมานี่ !!
.
เพราะวันนี้แอดจะมาชี้เป้าแหล่งที่ให้เรา Deploy ขึ้น Server แบบฟรี ๆ ใช้เรียนก็ได้ ทำเว็บแอปเล็ก ๆ ใช้เองก็ดีไปพร้อมกันเต็ม ๆ ถึง 3 เจ้าเลย <3
.
https://blog.logrocket.com/free-services-deploy-node-js-app/
.
ซึ่งใน Blog นี้เขาก็ได้รวมไว้แล้วนั่นเองคร้าบบ มีประโยชน์จัดดดด ๆ !!
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
node server 在 悟訢 Youtube 的評價
Twitch 聊天室傳送門:
http://www.twitch.tv/alanlovemiku/chat
使用模組包:FTB Wanderlust Reloaded
http://goo.gl/WmVd0J
背景音樂(隨機撥放):
http://goo.gl/4XNxOq
~*~*~*~*~*~*~*~*~*~*~
悟訢的社群管道(歡迎 Follow 以獲取最新資訊):
Twitter:https://twitter.com/alan6716
Google+:http://goo.gl/Dt7ame
node server 在 悟訢 Youtube 的評價
Twitch 聊天室傳送門:
http://www.twitch.tv/alanlovemiku/chat
使用模組包:FTB Wanderlust Reloaded
http://goo.gl/WmVd0J
背景音樂(隨機撥放):
http://goo.gl/4XNxOq
~*~*~*~*~*~*~*~*~*~*~
悟訢的社群管道(歡迎 Follow 以獲取最新資訊):
Twitter:https://twitter.com/alan6716
Google+:http://goo.gl/Dt7ame
node server 在 悟訢 Youtube 的評價
Twitch 聊天室傳送門:
http://www.twitch.tv/alanlovemiku/chat
使用模組包:FTB Wanderlust Reloaded
http://goo.gl/WmVd0J
背景音樂(隨機撥放):
http://goo.gl/4XNxOq
~*~*~*~*~*~*~*~*~*~*~
悟訢的社群管道(歡迎 Follow 以獲取最新資訊):
Twitter:https://twitter.com/alan6716
Google+:http://goo.gl/Dt7ame
Facebook:https://www.facebook.com/AlanLetsPlay
node server 在 Express/Node introduction - 學習該如何開發Web 的相關結果
Node (或者說Node.js) 是一個開源、跨平台和允許開發者使用Javascript創造伺服器端工具和應用的執行環境。運行的目的是為了能在瀏覽器外使用,例如:直接執行在電腦或 ... ... <看更多>
node server 在 下載 - Node.js 的相關結果
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. ... <看更多>
node server 在 Day7 - Node.js 內建的Web Server 介紹及使用 的相關結果
var http = require('http'); // 1 - 載入Node.js 原生模組http var server = http.createServer(function (req, res) { // 2 - 建立server // 在此處理客戶端向http ... ... <看更多>