Go

Microservices

サービスアーキテクチャ、discovery、通信、API gateway、circuit breaker、observability、structured logging、metrics、distributed tracing

24 面接問題·
Senior
1

モノリシックアーキテクチャと microservices アーキテクチャの主な違いは何ですか?

回答

microservices アーキテクチャでは、アプリケーションは独立したサービスに分割され、それぞれを別々に開発、デプロイ、スケールできます。これは、すべてのコードが単一のプロセス内にあるモノリスとは異なります。各 microservice は独自のデータベースを持ち、API を介して通信します。これにより、スケーラビリティ、レジリエンス、技術的な柔軟性が向上しますが、運用上の複雑さが増します。

2

microservices アーキテクチャにおける service discovery の主な役割は何ですか?

回答

service discovery により、サービスはハードコードされた設定なしに動的に互いを見つけられます。サービスは IP アドレスとポートを持って registry(Consul、etcd、Eureka)に登録します。クライアントは registry に問い合わせて利用可能なインスタンスを取得します。これにより、水平スケーリング、継続的デプロイ、インスタンス障害時のレジリエンスが容易になります。

3

microservices アーキテクチャにおいて、ACID トランザクションなしで分散データの一貫性を管理できる pattern はどれですか?

回答

Saga pattern は、一連のローカルトランザクションを介して分散データの一貫性を管理します。各サービスは自身のトランザクションを実行し、イベントを発行します。ステップが失敗した場合、補償トランザクションが以前の変更を取り消します。実装はオーケストレーション(中央コーディネーター)またはコレオグラフィ(pub/sub イベント)にできます。これにより、分散ロックなしで結果整合性が保証されます。

4

Consul による service discovery を実装するために一般的に使用される Go ライブラリはどれですか?

5

microservices 間の同期通信(REST/gRPC)と非同期通信(messaging)の主な違いは何ですか?

+21 面接問題

次の面接に向けてGoをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める