なぜ我々は、URLの短縮が必要なのか
例えば、我々はTinyURLの経由このページを短くする場合:
https://www.educative.io/collection/page/5668639101419520/5649050225344512/5668600916475904/
私たちはなるだろう:
タイニーURLを生成する方法
TinyURLのは7文字の長さで、各文字は62個のアルファベットを次の中から撮影することができたと
- AZ = 26
- AZ = 26
- 0-9 = 10
生成62 CANです。7 ^ WE(の=〜3.5 兆)tinyURLsがHAVING。アルファベット62から7文字の長さである。(一日あたりの生産作品の推定数で割った推定に必要な長さのURLに応じてどのように長いURL枯渇やストレージ容量を推定することができます)
システムデザイン
ディテール
自己増力IDは、対応する符号化されたベース62のURLを生成するので、衝突は発生しません。複数のマシンが同時に順次生成場合シンクID分散ロックは、非常に低い効率を必要とします。だから、ID範囲のカットの範囲のカウンタを使用することを検討してください。
例えば:
1 - 100K〜200K
2 - 200K〜300K
N - ...
最終的な一貫性のNoSQL飼育係などの高可用性と拡張性として、飼育係範囲のカウンタを使用して実装。
ときに適用範囲をZKするヒットがない場合はキャッシュにアクセスするためのURLを生成するためのウェブサーバは、永続性とキャッシュの結果に同期されます。サーバーがダウンしている場合、対応する範囲が消去されます。
参照:https://www.youtube.com/watch?v=JQDHz72OA3c&list=LLzFCWqxDhIffTUi1VOx2iqw&index=6&t=0s