Go

Microservices

สถาปัตยกรรมของ service, discovery, การสื่อสาร, API gateway, circuit breaker, observability, structured logging, metrics, distributed tracing

24 คำถามสัมภาษณ์·
Senior
1

ความแตกต่างหลักระหว่างสถาปัตยกรรมแบบ monolithic และสถาปัตยกรรม microservices คืออะไร?

คำตอบ

ในสถาปัตยกรรม microservices แอปพลิเคชันจะถูกแยกออกเป็น service อิสระที่สามารถพัฒนา deploy และ scale แยกกันได้ ต่างจาก monolith ที่โค้ดทั้งหมดอยู่ในกระบวนการเดียว แต่ละ microservice มีฐานข้อมูลของตัวเองและสื่อสารผ่าน API สิ่งนี้ช่วยให้มี scalability ความยืดหยุ่น และความยืดหยุ่นทางเทคโนโลยีที่ดีขึ้น แต่เพิ่มความซับซ้อนในการดำเนินงาน

2

บทบาทหลักของ service discovery ในสถาปัตยกรรม microservices คืออะไร?

คำตอบ

service discovery ช่วยให้ service ค้นหากันได้แบบไดนามิกโดยไม่ต้องตั้งค่าแบบ hardcoded service จะลงทะเบียนกับ registry (Consul, etcd, Eureka) พร้อมที่อยู่ IP และพอร์ต ไคลเอนต์จะ query registry เพื่อรับ instance ที่พร้อมใช้งาน สิ่งนี้ช่วยให้ horizontal scaling การ deploy อย่างต่อเนื่อง และความยืดหยุ่นเมื่อ instance ล้มเหลวทำได้ง่ายขึ้น

3

ในสถาปัตยกรรม microservices pattern ใดที่จัดการความสอดคล้องของข้อมูลแบบกระจายโดยไม่ต้องใช้ ACID transaction?

คำตอบ

Saga pattern จัดการความสอดคล้องของข้อมูลแบบกระจายผ่านลำดับของ local transaction แต่ละ service จะรัน transaction ของตัวเองและ publish event หากขั้นตอนใดล้มเหลว compensating transaction จะย้อนกลับการเปลี่ยนแปลงก่อนหน้า การ implement สามารถเป็นแบบ orchestrate (ตัวประสานงานส่วนกลาง) หรือ choreograph (event pub/sub) สิ่งนี้รับประกัน eventual consistency โดยไม่ต้องใช้ distributed lock

4

ไลบรารี Go ใดที่ใช้กันทั่วไปในการ implement service discovery กับ Consul?

5

ความแตกต่างหลักระหว่างการสื่อสารแบบ synchronous (REST/gRPC) และ asynchronous (messaging) ระหว่าง microservices คืออะไร?

+21 คำถามสัมภาษณ์

หัวข้อสัมภาษณ์ Go อื่นๆ

พื้นฐาน Go

Junior
25 คำถาม

โครงสร้างข้อมูล Go

Junior
20 คำถาม

อินเทอร์เฟซใน Go

Junior
18 คำถาม

การจัดการข้อผิดพลาด

Junior
20 คำถาม

พื้นฐาน Goroutine

Junior
20 คำถาม

Channels

Junior
22 คำถาม

Go Modules

Mid-Level
18 คำถาม

เซิร์ฟเวอร์ HTTP

Mid-Level
24 คำถาม

ไคลเอนต์ HTTP

Mid-Level
18 คำถาม

การเข้ารหัส JSON

Mid-Level
20 คำถาม

Database/SQL

Mid-Level
22 คำถาม

แพ็กเกจ context

Mid-Level
20 คำถาม

Testing

Mid-Level
22 คำถาม

รูปแบบ Concurrency

Mid-Level
24 คำถาม

ไพรมิทีฟการซิงโครไนซ์

Mid-Level
22 คำถาม

เฟรมเวิร์กเว็บ Go

Mid-Level
20 คำถาม

การออกแบบ REST API

Mid-Level
20 คำถาม

gRPC

Mid-Level
22 คำถาม

Reflection

Senior
20 คำถาม

การจัดการหน่วยความจำ

Senior
24 คำถาม

การเพิ่มประสิทธิภาพการทำงาน

Senior
22 คำถาม

Generics

Senior
20 คำถาม

Go Design Patterns

Senior
24 คำถาม

ความปลอดภัยและการยืนยันตัวตน

Senior
24 คำถาม

Docker & Containerization

Senior
20 คำถาม

Kubernetes Basics

Senior
22 คำถาม

Go ขั้นสูง

Senior
20 คำถาม

การพัฒนา CLI

Senior
20 คำถาม

เชี่ยวชาญ Go สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี