โลโก้ RabbitMQ
อันดับ 64 ใน Top 100 DevOps และ CI/CDMPL 2.0 (โอเพนซอร์ส)

RabbitMQ คืออะไร และวิธีติดตั้งบน Cloud Server

RabbitMQ คือ Message Broker ที่รับงานจากระบบหนึ่งไปพักไว้ในคิว แล้วส่งให้ผู้ทำงานเบื้องหลังประมวลผลทีละรายการ ช่วยให้เว็บตอบผู้ใช้ได้ทันทีโดยไม่ต้องรองานที่ใช้เวลานาน

หมวดหมู่
DevOps และ CI/CD
ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
1 vCPU · RAM 2 GB
ไลเซนส์
MPL 2.0 (โอเพนซอร์ส)
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • ISO/IEC 27001
  • ISO 22301
  • ISO 20000-1
  • CSA-STAR

Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย

RabbitMQ คืออะไร

เมื่อผู้ใช้กดปุ่มที่ทำให้ระบบต้องส่งอีเมล สร้างรายงาน หรือประมวลผลรูป การทำงานเหล่านั้นทันทีจะทำให้หน้าเว็บค้าง ทางออกคือส่งงานเข้าคิวแล้วตอบผู้ใช้ก่อน จากนั้นให้ผู้ทำงานเบื้องหลังค่อยจัดการ

RabbitMQ ทำหน้าที่เป็นคนกลางที่รับประกันว่างานจะไม่หายแม้ผู้ทำงานล่ม พร้อมกลไกกระจายงานไปยังผู้ทำงานหลายตัว การลองใหม่เมื่อล้มเหลว และคิวสำหรับงานที่ประมวลผลไม่สำเร็จ

จุดที่ทำให้ RabbitMQ เป็นตัวเลือกแรกของหลายทีมคือความเรียบง่าย ติดตั้งแล้วใช้งานได้เลย มีหน้าเว็บจัดการที่เห็นสถานะคิวชัดเจน และไลบรารีรองรับทุกภาษาโปรแกรมหลัก

แผนผังการวางระบบ RabbitMQ บน Cloud Server หนึ่งเครื่องที่ Data Center ในประเทศไทย ผู้ใช้เข้าถึงผ่านไฟร์วอลล์ที่เปิดเฉพาะพอร์ต 5672, 15672 ตัว RabbitMQ และข้อมูลอยู่บนเครื่องเดียวกัน เริ่มต้นที่ 1 vCPU แรม 2 GB และมีสำเนาสำรองเขียนออกไปเก็บอีกไซต์หนึ่ง
RabbitMQ ทำงานบน Cloud Server เครื่องเดียวได้ครบ เปิดเฉพาะพอร์ตที่จำเป็น ข้อมูลและสำเนาสำรองอยู่ใน Data Center ในประเทศไทย

ความสามารถเด่นของ RabbitMQ

รับประกันว่างานไม่หาย

บันทึกข้อความลงดิสก์และยืนยันเมื่อผู้ทำงานประมวลผลเสร็จ

กระจายงานอัตโนมัติ

เพิ่มจำนวนผู้ทำงานแล้วงานจะถูกแบ่งให้เองตามความว่าง

หน้าเว็บจัดการ

เห็นจำนวนงานค้าง อัตราการประมวลผล และสถานะการเชื่อมต่อได้ทันที

รูปแบบการส่งหลายแบบ

ทั้งแบบตรง แบบกระจาย และแบบตามหัวข้อ ครอบคลุมรูปแบบการทำงานส่วนใหญ่

ทำคลัสเตอร์ได้

รวมหลายโหนดเพื่อความพร้อมใช้งานสูงเมื่อระบบสำคัญพึ่งพาคิว

ใช้ RabbitMQ ทำอะไรได้บ้าง

  • ส่งอีเมลและการแจ้งเตือนเบื้องหลังของเว็บ
  • ประมวลผลรูปภาพ วิดีโอ หรือไฟล์ที่อัปโหลดเข้ามา
  • กระจายงานหนักไปยังเครื่องประมวลผลหลายเครื่อง
  • เชื่อมระบบภายในองค์กรที่ต้องส่งงานต่อกันเป็นทอด

สเปก Cloud Server ที่แนะนำ

แผนภาพเทียบสเปก Cloud Server สำหรับ RabbitMQ 3 ระดับ เริ่มจาก 1 vCPU แรม 2 GB ดิสก์ NVMe 20 GB ไปจนถึง 4 vCPU ขึ้นไป แรม 8 GB ขึ้นไป ดิสก์ NVMe 120 GB ขึ้นไป โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
เริ่มต้นคิวงานของเว็บเดียว1 vCPU2 GBNVMe 20 GB
แนะนำระบบงานจริงที่มีงานเบื้องหลังต่อเนื่อง2 vCPU4 GBNVMe 60 GB
ระบบใหญ่คลัสเตอร์สามโหนดสำหรับระบบที่คิวห้ามล่ม4 vCPU ขึ้นไป8 GB ขึ้นไปNVMe 120 GB ขึ้นไป

ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ

วิธีติดตั้ง RabbitMQ บน Cloud Server ของ THAI DATA CLOUD

ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server

สิ่งที่ต้องเตรียม

  • Ubuntu Server 24.04 LTS หรือ Rocky Linux 9
  • Erlang เวอร์ชันที่ตรงกับรุ่นของ RabbitMQ (ที่เก็บแพ็กเกจทางการจัดการให้)
  • RAM เผื่อสำหรับคิวที่อาจค้างเมื่อผู้ทำงานหยุด

ทดสอบบน Ubuntu Server 24.04 LTS

  1. 1

    ติดตั้ง RabbitMQ

    sudo apt update
    sudo apt -y install rabbitmq-server
    sudo systemctl enable --now rabbitmq-server
  2. 2

    เปิดหน้าเว็บจัดการ

    sudo rabbitmq-plugins enable rabbitmq_management
  3. 3

    สร้างผู้ใช้ผู้ดูแลและลบผู้ใช้เริ่มต้น

    ผู้ใช้ guest ที่มากับระบบเข้าได้จากเครื่องเดียวกันเท่านั้น แต่ควรลบทิ้งเพื่อความปลอดภัย

    sudo rabbitmqctl add_user admin ChangeThisStrongPassword
    sudo rabbitmqctl set_user_tags admin administrator
    sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
    sudo rabbitmqctl delete_user guest
  4. 4

    สร้างผู้ใช้และ Virtual Host สำหรับแอป

    sudo rabbitmqctl add_vhost app
    sudo rabbitmqctl add_user appuser ChangeThisAppPassword
    sudo rabbitmqctl set_permissions -p app appuser ".*" ".*" ".*"
  5. 5

    ตั้งค่าฝั่งแอป

    ตัวอย่างการตั้งค่าสำหรับ Laravel ให้ใช้ RabbitMQ เป็นคิวงาน แอปภาษาอื่นใช้แนวทางเดียวกันผ่านไลบรารี AMQP

    QUEUE_CONNECTION=rabbitmq
    RABBITMQ_HOST=10.10.0.25
    RABBITMQ_PORT=5672
    RABBITMQ_VHOST=app
    RABBITMQ_LOGIN=appuser
    RABBITMQ_PASSWORD=ChangeThisAppPassword

ตั้งการแจ้งเตือนเมื่อจำนวนงานค้างในคิวสูงผิดปกติ เพราะนั่นคือสัญญาณว่าผู้ทำงานเบื้องหลังหยุดทำงานหรือมีงานที่ประมวลผลไม่สำเร็จวนซ้ำ

พอร์ตที่ต้องเปิดบน Firewall

พอร์ตโปรโตคอลใช้ทำอะไร
5672TCPโปรโตคอล AMQP สำหรับแอป (เปิดเฉพาะวงภายใน)
15672TCPหน้าเว็บจัดการ (ควรเข้าผ่าน VPN หรือจำกัดไอพี)

สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ

  • ลบผู้ใช้ guest และสร้างผู้ใช้แยกต่อแอปพร้อมสิทธิ์เฉพาะ Virtual Host ของตัวเอง
  • ไม่เปิดพอร์ต 5672 และ 15672 สู่อินเทอร์เน็ต
  • เปิด TLS เมื่อแอปกับ RabbitMQ อยู่คนละเครื่อง
  • ตั้งขีดจำกัดหน่วยความจำและดิสก์เพื่อให้ระบบชะลอการรับข้อความก่อนที่เครื่องจะเต็ม
  • ตั้งคิวสำหรับงานที่ล้มเหลวเพื่อไม่ให้งานเสียวนซ้ำจนระบบตัน

ทำไมควรรัน RabbitMQ บน Cloud Server ของ THAI DATA CLOUD

Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง

รันบน Cloud Server เครื่องเล็กก็เพียงพอสำหรับเว็บส่วนใหญ่ จึงเพิ่มความสามารถให้ระบบด้วยต้นทุนต่ำ

แยกเครื่องผู้ทำงานเบื้องหลังออกจากเว็บ แล้วเชื่อมผ่าน Private Network ในไทย ทำให้เว็บตอบสนองเร็วขึ้นชัดเจน

เพิ่มเครื่องผู้ทำงานชั่วคราวช่วงที่มีงานค้างมาก แล้วลบทิ้งเมื่อเคลียร์หมด

คำถามที่พบบ่อยเกี่ยวกับ RabbitMQ

RabbitMQ กับ Redis ใช้ทำคิวต่างกันอย่างไร

Redis ทำคิวได้และเร็วมาก เหมาะกับงานที่ยอมให้หายได้บ้างและต้องการความเรียบง่าย ส่วน RabbitMQ ออกแบบมาเพื่อการส่งข้อความโดยเฉพาะ มีการยืนยันการประมวลผล การลองใหม่ และคิวงานล้มเหลวที่ครบกว่า

ต้องทำคลัสเตอร์ไหม

ถ้าคิวหยุดแล้วธุรกิจหยุดด้วย ควรทำคลัสเตอร์อย่างน้อยสามโหนด แต่สำหรับเว็บทั่วไปที่งานเบื้องหลังล่าช้าได้ชั่วคราว เครื่องเดียวพร้อมการสำรองข้อมูลก็เพียงพอ

ทำไมงานในคิวค้างเยอะขึ้นเรื่อย ๆ

แปลว่าผู้ทำงานประมวลผลช้ากว่าที่งานเข้ามา ให้เพิ่มจำนวนผู้ทำงาน ปรับให้ประมวลผลเร็วขึ้น หรือตรวจว่ามีงานที่ล้มเหลวแล้ววนกลับเข้าคิวซ้ำหรือไม่

ให้เราติดตั้ง RabbitMQ ให้ฟรี บน Cloud Server ในไทย

แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด