2022-06-01から1ヶ月間の記事一覧
概要 ネットワーク越しの通信は基本的に不安定であるため、外部APIとの通信で発生したエラーを都度クライアントに返すとエラー率が上がってしまいユーザ体験が悪くなってしまします。 そこでクライアントに返す前に何度かリトライすることで、エラー率を下げ…
概要 Bazelでビルド時に multiple copies of package passed to linker: @io_bazel_rules_go//proto/wkt:field_mask_go_proto @org_golang_google_genproto//protobuf/field_mask:field_mask のようなエラーが出た時の対応です。 環境 Bazel 5.0.0 gazelle 0…
概要 christina04.hatenablog.com で説明したように、Circuit Breakerのパラメータ調整は大変です。 実際のキャパシティよりパラメータを小さくしてしまうと、リソースはまだ余裕があるのにOpenしていまいます。 逆にパラメータが大きすぎると、Openが遅れサ…
概要 Envoyのyamlは非常に長大で初めて読む人からするととても分かりにくいです。 しかし実際は各要素の役割を理解するととてもシンプルに構成されていることが分かります。 そのための手助けとしてこちらで図を交えながら説明します。 環境 Envoy 1.22.0 要…
概要 サービスの信頼性を高めるため、依存するマイクロサービスが落ちても障害範囲をそこだけに留め、それ以外のマイクロサービスは稼働し続けるのが理想です。 自分たちのサービスであれば各マイクロサービスにCircuit Breakerを設定することで、スローダウ…
背景 EnvoyにはCircuit Breakerがあり、依存するサービスがスローダウンした際にそれ以上リクエスト送らず即座に503を返すことでサービスが死なないようにする仕組みがあります。 しかしパラメータの調節が難しく、期待した挙動にならないことが多いため1つ…
概要 MongoDBで使っていないindexを整理する際に使ったコマンドのチートシートです。 バックアップ用途の吐き出しコマンドとスプレッドシートで確認しやすくするためのコマンドを主に書きます。 環境 MongoDB v3.6.23 コマンド 以下にそれぞれのケースでのス…