日本語版
最新ニュース
世界

トップ10 Go Scaleで壊れるアンチパターン| theoptimizationking | 2025年8月

GOは、シンプルさ、速度、使いやすさで評判があります。そして、ほとんどの場合、それは配信されます。しかし、ここに不快な真実があります。学習が容易になるのと同じシンプルさは、特に大規模な建築のtrapにあなたを誘惑する可能性もあります。10サービスを実行しているときは?これらのパターンは無害かもしれません。数十億のリクエストを処理するマイクロサービス全体で1秒あたり1000ゴルチンを実行しているとき?彼らはあなたのパフォーマンス、観察、保守性を静かに殺します。長年にわたって生産中のGOシステムをスケーリングした後、ここにあります トップ10アンチパターン 私が見た - それはそうです 開発者は元気に見えます しかし 現実世界の高負荷環境で崩壊します。go doSomething() // No cancelation, no tracking, no error handling無邪気に見えます。しかし、それに何百万ものリクエストを掛けると、最終的には孤立したゴルチンが記憶とCPUを食べることになります。内部ループまたはHTTPハンドラーを産んだ場合、特に危険です。修理:コンテキストとウェイトグループを使用します。常にクリーンアップしてください。for i := 0; i f, _ := os.Open("file.txt")defer f.Close() // BAD}これはすぐにファイルを閉じません。関数の終わりまでそれらをすべて定ルします。大規模に、これはファイル記述子リークまたはメモリ時限爆弾になります。修理: 電話 f.Close() 通過するのではなく、ループの内側に明示的に defer。val, err := doThing()if err != nil…

トップ10 Go Scaleで壊れるアンチパターン| theoptimizationking | 2025年8月

1754590917
2025-08-07 18:05:00

GOは、シンプルさ、速度、使いやすさで評判があります。そして、ほとんどの場合、それは配信されます。しかし、ここに不快な真実があります。学習が容易になるのと同じシンプルさは、特に大規模な建築のtrapにあなたを誘惑する可能性もあります。

10サービスを実行しているときは?これらのパターンは無害かもしれません。数十億のリクエストを処理するマイクロサービス全体で1秒あたり1000ゴルチンを実行しているとき?彼らはあなたのパフォーマンス、観察、保守性を静かに殺します。

長年にわたって生産中のGOシステムをスケーリングした後、ここにあります トップ10アンチパターン 私が見た – それはそうです 開発者は元気に見えます しかし 現実世界の高負荷環境で崩壊します

go doSomething() // No cancelation, no tracking, no error handling

無邪気に見えます。しかし、それに何百万ものリクエストを掛けると、最終的には孤立したゴルチンが記憶とCPUを食べることになります。内部ループまたはHTTPハンドラーを産んだ場合、特に危険です。

修理:コンテキストとウェイトグループを使用します。常にクリーンアップしてください。

for i := 0; i     f, _ := os.Open("file.txt")
defer f.Close() // BAD
}

これはすぐにファイルを閉じません。関数の終わりまでそれらをすべて定ルします。大規模に、これはファイル記述子リークまたはメモリ時限爆弾になります。

修理: 電話 f.Close() 通過するのではなく、ループの内側に明示的に defer

val, err := doThing()
if err != nil {
// just log and move on
}

大規模に、静かに失敗する カスケード障害。 1つの悪い入力は、停止または再試行しなかったため、システムを介してゴミを伝播し始めます。

修理:ハンドル、伝播、またはログエラー 有意義に。そして、治療をやめてください log.Println(err) エラー処理として。

var client = &http.Client{} // shared across services

#トップ10 #Scaleで壊れるアンチパターン #theoptimizationking #2025年8月

執筆者について: nipponese

Nipponese News編集部は、国内外のニュースを日本語で分かりやすくお届けします。