# Microservices (Go) > สถาปัตยกรรมของ service, discovery, การสื่อสาร, API gateway, circuit breaker, observability, structured logging, metrics, distributed tracing - 24 คำถามสัมภาษณ์ - Senior - [คำถามสัมภาษณ์: Go](https://sharpskill.dev/th/technologies/go/interview-questions.md) ## 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 ## มีอีก 21 คำถาม - ไลบรารี Go ใดที่ใช้กันทั่วไปในการ implement service discovery กับ Consul? - ความแตกต่างหลักระหว่างการสื่อสารแบบ synchronous (REST/gRPC) และ asynchronous (messaging) ระหว่าง microservices คืออะไร? สมัครฟรี: https://sharpskill.dev/th/login ## หัวข้อสัมภาษณ์ Go อื่นๆ - [พื้นฐาน Go](https://sharpskill.dev/th/technologies/go/interview-questions/go-basics.md): 25 คำถาม, Junior - [โครงสร้างข้อมูล Go](https://sharpskill.dev/th/technologies/go/interview-questions/go-data-structures.md): 20 คำถาม, Junior - [อินเทอร์เฟซใน Go](https://sharpskill.dev/th/technologies/go/interview-questions/go-interfaces.md): 18 คำถาม, Junior - [การจัดการข้อผิดพลาด](https://sharpskill.dev/th/technologies/go/interview-questions/error-handling.md): 20 คำถาม, Junior - [พื้นฐาน Goroutine](https://sharpskill.dev/th/technologies/go/interview-questions/goroutines-basics.md): 20 คำถาม, Junior - [Channels](https://sharpskill.dev/th/technologies/go/interview-questions/channels.md): 22 คำถาม, Junior - [Go Modules](https://sharpskill.dev/th/technologies/go/interview-questions/go-modules.md): 18 คำถาม, Mid-Level - [เซิร์ฟเวอร์ HTTP](https://sharpskill.dev/th/technologies/go/interview-questions/http-server.md): 24 คำถาม, Mid-Level - [ไคลเอนต์ HTTP](https://sharpskill.dev/th/technologies/go/interview-questions/http-client.md): 18 คำถาม, Mid-Level - [การเข้ารหัส JSON](https://sharpskill.dev/th/technologies/go/interview-questions/json-encoding.md): 20 คำถาม, Mid-Level - [Database/SQL](https://sharpskill.dev/th/technologies/go/interview-questions/database-sql.md): 22 คำถาม, Mid-Level - [แพ็กเกจ context](https://sharpskill.dev/th/technologies/go/interview-questions/context-package.md): 20 คำถาม, Mid-Level - [Testing](https://sharpskill.dev/th/technologies/go/interview-questions/testing.md): 22 คำถาม, Mid-Level - [รูปแบบ Concurrency](https://sharpskill.dev/th/technologies/go/interview-questions/concurrency-patterns.md): 24 คำถาม, Mid-Level - [ไพรมิทีฟการซิงโครไนซ์](https://sharpskill.dev/th/technologies/go/interview-questions/sync-primitives.md): 22 คำถาม, Mid-Level - [เฟรมเวิร์กเว็บ Go](https://sharpskill.dev/th/technologies/go/interview-questions/go-web-frameworks.md): 20 คำถาม, Mid-Level - [การออกแบบ REST API](https://sharpskill.dev/th/technologies/go/interview-questions/rest-api-design.md): 20 คำถาม, Mid-Level - [gRPC](https://sharpskill.dev/th/technologies/go/interview-questions/grpc.md): 22 คำถาม, Mid-Level - [Reflection](https://sharpskill.dev/th/technologies/go/interview-questions/reflection.md): 20 คำถาม, Senior - [การจัดการหน่วยความจำ](https://sharpskill.dev/th/technologies/go/interview-questions/memory-management.md): 24 คำถาม, Senior - [การเพิ่มประสิทธิภาพการทำงาน](https://sharpskill.dev/th/technologies/go/interview-questions/performance-optimization.md): 22 คำถาม, Senior - [Generics](https://sharpskill.dev/th/technologies/go/interview-questions/generics.md): 20 คำถาม, Senior - [Go Design Patterns](https://sharpskill.dev/th/technologies/go/interview-questions/design-patterns.md): 24 คำถาม, Senior - [ความปลอดภัยและการยืนยันตัวตน](https://sharpskill.dev/th/technologies/go/interview-questions/security-authentication.md): 24 คำถาม, Senior - [Docker & Containerization](https://sharpskill.dev/th/technologies/go/interview-questions/docker-containerization.md): 20 คำถาม, Senior - [Kubernetes Basics](https://sharpskill.dev/th/technologies/go/interview-questions/kubernetes-basics.md): 22 คำถาม, Senior - [Go ขั้นสูง](https://sharpskill.dev/th/technologies/go/interview-questions/advanced-go.md): 20 คำถาม, Senior - [การพัฒนา CLI](https://sharpskill.dev/th/technologies/go/interview-questions/cli-development.md): 20 คำถาม, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/th/technologies/go/interview-questions/microservices