
Microservices
サービスアーキテクチャ、discovery、通信、API gateway、circuit breaker、observability、structured logging、metrics、distributed tracing
24 面接問題·
Senior
1モノリシックアーキテクチャと microservices アーキテクチャの主な違いは何ですか?
1
モノリシックアーキテクチャと microservices アーキテクチャの主な違いは何ですか?
回答
microservices アーキテクチャでは、アプリケーションは独立したサービスに分割され、それぞれを別々に開発、デプロイ、スケールできます。これは、すべてのコードが単一のプロセス内にあるモノリスとは異なります。各 microservice は独自のデータベースを持ち、API を介して通信します。これにより、スケーラビリティ、レジリエンス、技術的な柔軟性が向上しますが、運用上の複雑さが増します。
2microservices アーキテクチャにおける service discovery の主な役割は何ですか?
2
microservices アーキテクチャにおける service discovery の主な役割は何ですか?
回答
service discovery により、サービスはハードコードされた設定なしに動的に互いを見つけられます。サービスは IP アドレスとポートを持って registry(Consul、etcd、Eureka)に登録します。クライアントは registry に問い合わせて利用可能なインスタンスを取得します。これにより、水平スケーリング、継続的デプロイ、インスタンス障害時のレジリエンスが容易になります。
3microservices アーキテクチャにおいて、ACID トランザクションなしで分散データの一貫性を管理できる pattern はどれですか?
3
microservices アーキテクチャにおいて、ACID トランザクションなしで分散データの一貫性を管理できる pattern はどれですか?
回答
Saga pattern は、一連のローカルトランザクションを介して分散データの一貫性を管理します。各サービスは自身のトランザクションを実行し、イベントを発行します。ステップが失敗した場合、補償トランザクションが以前の変更を取り消します。実装はオーケストレーション(中央コーディネーター)またはコレオグラフィ(pub/sub イベント)にできます。これにより、分散ロックなしで結果整合性が保証されます。
4
Consul による service discovery を実装するために一般的に使用される Go ライブラリはどれですか?
5
microservices 間の同期通信(REST/gRPC)と非同期通信(messaging)の主な違いは何ですか?
+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問並行処理パターン
Mid-Level
24問同期プリミティブ
Mid-Level
22問Go Web フレームワーク
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問