開発日報

窓際エンジニアの開発備忘。日報は嘘です。

【マイクロサービス】サービスディスカバリー概説

課題

マイクロサービスにおけるサービス内の個々のインスタンスは負荷の状況において動的に生成・破棄される。 動的に生成されるインスタンスへのルーティングはどのように行われるか?

f:id:yuuu1993g:20211104115003p:plain

対応

マイクロサービス群の内部にサービスディスカバリーが存在し、そこでルーティング情報が格納されている。
DNSに近いイメージ。

(ロードバランサーとターゲットの対応付けで管理するのは手間。)

f:id:yuuu1993g:20211104115016p:plain

代表的なサービスディスカバリー

  • Zookeper : Apacheが提供。Hadoopで使用されている。JavaとC。
  • Consul : Hashi Corpが提供。
  • Eureka : Netflix。ロードバランスとフェイルオーバー機能もある。
  • etcd : CNCF。k8sでりようされている。