กลับไปหน้าบทความ

อ่าน 2 นาที

เกียร์แมน

Gearman คือ เฟรมเวิร์กแอปพลิเคชัน ที่ออกแบบมาเพื่อกระจายงานคอมพิวเตอร์ที่เหมาะสมไปยังคอมพิวเตอร์หลายเครื่อง เพื่อให้สามารถทำงานขนาดใหญ่ได้เร็วขึ้น หรือทำการ ปรับสมดุลภาระงาน...

เกียร์แมน

เกียร์แมน
ผู้เขียนต้นฉบับแบรด ฟิตซ์แพทริก
นักพัฒนาไบรอัน เอเคอร์ , เอริค เดย์
ปล่อย8 มกราคม 2552 ( 8 มกราคม 2552 )
เวอร์ชันเสถียร
1.1.21 / 6 พฤศจิกายน 2023 ( 6 พฤศจิกายน 2023 )
เขียนเป็นC , C++ , m4 , สคริปต์เชลล์ต้นฉบับ: Perl
ระบบปฏิบัติการลินุกซ์ , วินโดวส์ (ไม่มีเซิร์ฟเวอร์), โอเพนวีเอ็มเอส
แพลตฟอร์มx86-64
มีจำหน่ายในภาษาอังกฤษ
พิมพ์กรอบงานแอปพลิเคชัน
ใบอนุญาตบีเอสดี
เว็บไซต์gearman.org
ที่เก็บข้อมูลgithub.com/gearman/

Gearmanคือเฟรมเวิร์กแอปพลิเคชันที่ออกแบบมาเพื่อกระจายงานคอมพิวเตอร์ที่เหมาะสมไปยังคอมพิวเตอร์หลายเครื่อง เพื่อให้สามารถทำงานขนาดใหญ่ได้เร็วขึ้น หรือทำการปรับสมดุลภาระงานหรือทำทั้งสองอย่างผสมผสานกัน ตัวอย่างเช่น เว็บเซิร์ฟเวอร์สามารถใช้ Gearman เพื่อส่งงานที่ไม่เหมาะสมไปยังคอมพิวเตอร์เครื่องอื่น (ซึ่งอาจทำงานบนสถาปัตยกรรมคอมพิวเตอร์ ที่แตกต่างกัน ใช้ระบบปฏิบัติการ ที่แตกต่างกัน หรือใช้ภาษาคอมพิวเตอร์ที่เหมาะสมกับการทำงานนั้นๆ มากกว่า) Gearman เป็นซอฟต์แวร์ โอเพนซอร์สฟรีที่เผยแพร่ภายใต้ใบอนุญาต BSD

เดิมทีโปรแกรมนี้เขียนขึ้นโดยBrad Fitzpatrickด้วยภาษา Perlจากนั้นBrian Akerและ Eric Day ได้เขียนใหม่ด้วยภาษา C

วิธีการทำงานของ Gearman

ชุดแอปพลิเคชัน Gearman

Gearman กำหนดบทบาทให้กับคอมพิวเตอร์แต่ละเครื่องที่เกี่ยวข้อง ไม่ว่าจะเป็นไคลเอ็นต์เซิร์ฟเวอร์งานหรือเวิร์กเกอร์ เครื่องเวิร์กเกอร์สามารถได้รับมอบหมายบทบาทเวิร์กเกอร์ได้หลายครั้ง ซึ่งช่วยให้คอมพิวเตอร์ที่มีประสิทธิภาพสูงกว่าสามารถทำงานส่วนต่างๆ ของงานที่กำหนดได้มากขึ้น งานจะเริ่มต้นจากไคลเอ็นต์ ส่งต่อจากไคลเอ็นต์ไปยังเซิร์ฟเวอร์งาน และดำเนินการบนเวิร์กเกอร์หนึ่งตัวหรือมากกว่านั้น ผลลัพธ์ของงานที่เสร็จสมบูรณ์จะถูกส่งกลับไปยังไคลเอ็นต์ที่งานนั้นเริ่มต้นขึ้นอีกครั้งผ่านทางเซิร์ฟเวอร์งาน Gearman มีความสัมพันธ์เชิงแนวคิดกับMapReduceโดย Gearman จัดการ MapReduce โดยอนุญาตให้โหนดเวิร์กเกอร์แมปงานไปยังเวิร์กเกอร์อื่นๆ โดยเวิร์กเกอร์ดั้งเดิมทำหน้าที่เป็นตัวลด (reducer)

Gearman จะทำการรวมงานที่ส่งมาจากไคลเอ็นต์ หากไคลเอ็นต์สองรายขึ้นไปขอให้ดำเนินการงานเดียวกันให้เสร็จสมบูรณ์ ไม่ว่าจะโดยการเห็นว่ามีการส่งบล็อกเดียวกันหรือโดยการใช้ค่าที่ไม่ซ้ำกันที่ไคลเอ็นต์ส่งมา Gearman จะรวมงานเพื่อให้ใช้เวิร์กเกอร์เพียงรายเดียวเท่านั้น การทำเช่นนี้มีจุดประสงค์เฉพาะเพื่อหลีกเลี่ยงปัญหาการรุมโจมตี (thundering herd)ซึ่งเป็นปัญหาที่พบบ่อยในความล้มเหลวของการเข้าถึงแคช (cache hit failures)

เพื่อลดความเสียหายที่อาจเกิดขึ้นหากเซิร์ฟเวอร์งาน (หรือการเชื่อมต่อเครือข่าย) ล้มเหลว ลูกค้าสามารถกำหนดค่าให้มีเซิร์ฟเวอร์งานที่กำหนดไว้มากกว่าหนึ่งเครื่องได้ หากเซิร์ฟเวอร์งานที่กำหนดไว้เครื่องแรกเกิดล้มเหลว ระบบจะทำการแทนที่ด้วยเซิร์ฟเวอร์อื่นโดยอัตโนมัติ

Gearman ใช้โปรโตคอลที่ประกอบด้วยแพ็กเก็ตไบนารีซึ่งมีคำขอและคำตอบ โปรโตคอลนี้กำหนดโครงสร้างของข้อความที่ส่งผ่านระหว่างสามส่วนของการใช้งาน Gearman โดยค่าเริ่มต้น โปรโตคอล Gearman ใช้ พอร์ต TCP 4730 ก่อนหน้านี้ใช้พอร์ต 7003 แต่ขัดแย้งกับ ช่วงพอร์ต AFS และ IANAจึงกำหนดพอร์ตใหม่ (4730) ให้

ชื่อ "Gearman" ถูกเลือกให้เป็นคำสลับอักษรของ "Manager" "เนื่องจากมันส่งงานไปให้คนอื่นทำ แต่ตัวมันเองไม่ได้ทำอะไรที่เป็นประโยชน์เลย" [ 1 ]

คุณสมบัติ

การนำไปใช้

  • Gearmand จนถึงเวอร์ชัน 1.1.12
  • Gearmand ตั้งแต่เวอร์ชัน 1.1.13
  • บริการ Java Gearman
  • เกียร์แมน::เซิร์ฟเวอร์
  • ทีซีแอลเกียร์แมน

ลูกค้า

ณ ปี 2025 มีไลบรารีไคลเอ็นต์สำหรับ C, Perl, Node.js , Python , PHP , Ruby , Java , .NET , JMS, MySQL , PostgreSQLและDrizzle [ 2 ]

  • เว็บไซต์อย่างเป็นทางการ
  • GearmanบนGitHub
  • http://danga.com/words/2007_06_usenix/usenix.pdf
  • http://gearman.org/documentation/
  • http://gearman.org/download/
  • http://lists.danga.com/pipermail/gearman/2008-April/000076.html
  • https://web.archive.org/web/20081209012837/http://krow.livejournal.com/628025.html
  • GearmanBundle สำหรับโครงการ Symfony2

การอ้างอิง

  1. "Gearman [เซิร์ฟเวอร์งาน Gearman]" .
  2. API ไคลเอ็นต์ & ผู้ปฏิบัติงานของหน้า Gearman
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Gearman&oldid=1361234400 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ เกียร์แมน

Gearman คือ เฟรมเวิร์กแอปพลิเคชัน ที่ออกแบบมาเพื่อกระจายงานคอมพิวเตอร์ที่เหมาะสมไปยังคอมพิวเตอร์หลายเครื่อง เพื่อให้สามารถทำงานขนาดใหญ่ได้เร็วขึ้น หรือทำการ ปรับสมดุลภาระงาน...

วิธีการทำงานของ Gearman

Gearman กำหนดบทบาทให้กับคอมพิวเตอร์แต่ละเครื่องที่เกี่ยวข้อง ไม่ว่าจะเป็น ไคลเอ็นต์ เซิร์ฟเวอร์ งานหรือเวิร์กเกอร์ เครื่องเวิร์กเกอร์สามารถได้รับมอบหมายบทบาทเวิร์กเกอร์ได้หลายครั้ง ซึ่งช่วยให้คอมพิวเตอร์ที่มีประสิทธิภาพสูงกว่าสามารถทำงานส่วนต่างๆ...

คุณสมบัติ

การลองงานซ้ำ การจัดตารางแบบหมุนเวียน การรวมตัวกัน การจัดเก็บข้อมูลถาวรผ่านทาง: libmemcached ลิบดริซเซิล ฐานข้อมูล SQLite MySQL โพสต์เกรส ตู้โตเกียว Redis (ยังไม่เปิดตัว อยู่ระหว่างการพัฒนา) MongoDB (ยังไม่เปิดตัว อยู่ระหว่างการพัฒนา)

การนำไปใช้

Gearmand จนถึงเวอร์ชัน 1.1.12 Gearmand ตั้งแต่เวอร์ชัน 1.1.13 บริการ Java Gearman เกียร์แมน::เซิร์ฟเวอร์ ทีซีแอลเกียร์แมน