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

เราจะตั้งค่าตัวแทนเซิร์ฟเวอร์และตัวแทนลูกค้าหลายราย และแนะนำคุณเกี่ยวกับพื้นฐานของกงสุล เราจะแสดงวิธีใช้ HTTP API และ Java API

ก่อนที่เราจะเริ่มต้น เรามาพูดถึงข้อมูลเบื้องต้นเกี่ยวกับกงสุลกันก่อน หากคุณรู้ว่ากงสุลคืออะไรหรือรู้ว่ากงสุลคืออะไร คุณสามารถข้ามหัวข้อถัดไปได้ หากคุณอ่านสไลด์จากกงสุลหรือบทความอื่นๆ ที่เราเขียนเกี่ยวกับกงสุล คุณสามารถข้ามส่วนถัดไปนี้ได้ (Microservice Service Discovery พร้อมกงสุล).

กงสุลคืออะไร?
กงสุลให้บริการ ค้นหาบริการ ตรวจสอบสุขภาพ และกำหนดค่าบริการสำหรับสถาปัตยกรรมไมโครเซอร์วิส

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

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

กงสุลเป็นเหมือนการรวมคุณสมบัติของเซิร์ฟเวอร์ DNS บวกกับที่เก็บคีย์/ค่าที่สอดคล้องกัน เช่น etcd บวกกับคุณสมบัติของ ZooKeeper สำหรับการค้นพบบริการ และการตรวจสอบสุขภาพเช่น Nagios แต่ทั้งหมดรวมอยู่ในระบบที่สอดคล้องกัน โดยพื้นฐานแล้ว กงสุลคือส่วนย่อยทั้งหมดที่คุณต้องการเพื่อให้มีรูปแบบบริการโดเมนที่เชื่อมโยงกันเพื่อให้บริการการค้นหา ความสมบูรณ์และการกำหนดค่าที่จำลองแบบ โทโพโลยีบริการ และสถานะความสมบูรณ์ การกำหนดค่าแบบกระจายและการค้นพบบริการนี้เป็นสิ่งจำเป็นสำหรับการประมวลผลแบบคลาวด์และไมโครเซอร์วิส ซึ่งช่วยให้ไมโครเซอร์วิสค้นหาเพียร์และไมโครเซอร์วิสปลายน้ำได้ ซึ่งช่วยให้ไมโครเซอร์วิสใช้เซอร์กิตเบรกเกอร์เมื่อบริการดาวน์สตรีมไม่พร้อมใช้งาน เพื่อให้สามารถกำหนดเส้นทางรอบๆ ความล้มเหลวได้ กงสุลยังมีอินเทอร์เฟซ REST และ Web UI ที่ดี เพื่อดูโทโพโลยีบริการและการกำหนดค่าบริการแบบกระจาย กงสุลจัดบริการของคุณในแค็ตตาล็อกที่เรียกว่า Service Catalog จากนั้นจึงจัดเตรียมอินเทอร์เฟซ DNS และ REST/HTTP/JSON

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

ลูกค้า ตัวแทนกงสุลที่ทำงานในโหมดไคลเอนต์ ส่งต่อคำขอไปยังเซิร์ฟเวอร์ ตัวแทนกงสุลที่ทำงานในโหมดเซิร์ฟเวอร์ ลูกค้าส่วนใหญ่เป็นบุคคลไร้สัญชาติ ลูกค้าทำการนินทา LAN ไปยังโหนดเซิร์ฟเวอร์เพื่อสื่อสารการเปลี่ยนแปลง เซิร์ฟเวอร์ ตัวแทนกงสุลที่ทำงานในโหมดเซิร์ฟเวอร์ เปรียบเสมือนตัวแทนลูกค้า แต่มีงานมากกว่า เซิร์ฟเวอร์กงสุลใช้กลไกองค์ประชุม RAFT เพื่อดูว่าใครเป็นผู้นำ เซิร์ฟเวอร์กงสุลรักษาสถานะคลัสเตอร์เช่นแค็ตตาล็อกบริการ ผู้นำจะจัดการมุมมองที่สอดคล้องกันของคู่คีย์การกำหนดค่า/ค่าความสมบูรณ์ของบริการและโทโพโลยี เซิร์ฟเวอร์กงสุลยังจัดการกับการนินทา WAN ไปยังศูนย์ข้อมูลอื่นๆ โหนดเซิร์ฟเวอร์กงสุลส่งต่อการสืบค้นไปยังผู้นำ และส่งต่อการสืบค้นไปยังศูนย์ข้อมูลอื่นๆ

Datacenter ค่อนข้างชัดเจน เป็นอะไรก็ได้ที่ช่วยให้การสื่อสารระหว่างโหนดเป็นไปอย่างรวดเร็ว โดยมีฮ็อพเพียงเล็กน้อยหรือไม่มีเลย การกำหนดเส้นทางเพียงเล็กน้อยหรือไม่มีเลย และกล่าวโดยย่อคือ การสื่อสารความเร็วสูง นี่อาจเป็นโซนความพร้อมใช้งานของ Amazon EC2 สภาพแวดล้อมเครือข่าย เช่น ซับเน็ต หรือเครือข่ายแบนด์วิดท์สูงส่วนตัว เวลาแฝงต่ำ และแบนด์วิดท์สูง คุณสามารถตัดสินใจได้ว่าดาต้าเซ็นเตอร์มีความหมายต่อองค์กรของคุณอย่างไร

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

กงสุลถูกสร้างขึ้นบนเซิร์ฟเวอร์ Serf เป็นโปรโตคอลการนินทาเต็มรูปแบบและให้กลไกการเป็นสมาชิก การตรวจจับความล้มเหลว และกลไกการออกอากาศเหตุการณ์ Serf จัดเตรียมคลัสเตอร์สำหรับโหนดเซิร์ฟเวอร์ กงสุลใช้การนินทา LAN สำหรับไคลเอนต์และเซิร์ฟเวอร์ในเครือข่ายท้องถิ่นหรือศูนย์ข้อมูลเดียวกัน กงสุลใช้ WAN Gossip แต่ใช้สำหรับเซิร์ฟเวอร์เท่านั้น

ด้วยกงสุล คุณสามารถใช้งานเซิร์ฟเวอร์ได้ 3 ถึง 5 เซิร์ฟเวอร์ต่อดาต้าเซ็นเตอร์ คุณใช้ซุบซิบ WAN เพื่อสื่อสารผ่านอินเทอร์เน็ตหรือในวงกว้าง