バックエンド用のライブラリの選択

Goでバックエンドを作成します。 コードメトリックを収集し、シャードのリクエストのバランスを取ります。

RPCを暗号化します。 モンガとコミュニケーションを取ります。 開発の年にわたって、実績のあるライブラリのスタックが形成されました。

たとえば、goagainは内部のRPCクライアントを切断した後、膨大な時間とデバッグを節約しました。



私たちは、テストされ、戦いで動作しているライブラリの選択を共有しています。



github.com/rcrowley/goagain

クライアントを切断せずにHTTPまたはRPCサーバーを再起動します。



github.com/cheggaaa/pb

コンソールの進行状況バー。 リーダーおよびライターインターフェイスをサポートします。



github.com/rcrowley/go-metrics

コード内のメトリック。 カウンター、パーセンタイル、ヒストグラム。 コンソールに美しくダンプし、GraphiteとInfluxDBで折りたたむことができます



github.com/golang/glog

ロガー Googleログを移植します。 詳細レベルを設定できます。 詳細はモジュールごとにフィルタリングされます。



labix.org/mgo

MongoDBに最適なドライバー。



github.com/camlistore/lock

ロックファイル。 PIDをファイルに書き込みます。 ロックがある場合、プロセスが停止したかどうかを確認します。 FreeBSD、MacOS、ARM、およびPlan9をサポートします。



github.com/codegangsta/cli

フラグとアクションによってロジックを区切ります。 コンソールのヘルプと自動補完を生成します。



godoc.org/code.google.com/p/go-uuid/uuid

標準UUIDの生成。



godoc.org/code.google.com/p/go.crypto/ssh

完全なSSHトランスポート。 秘密鍵と公開鍵を解析できます。



github.com/kr/pretty

深い構造を読み取り可能な形式で表示します。 fmt.Printfの適切な代替( "%+ v"、...)



github.com/google/btree

Google B-Treeの実装。



github.com/bitly/dablooms

カウンターと削除のあるブルームフィルター。



github.com/bitly/go-hostpool

フィードバックのあるリソースのバランサー。 遅延シャードの遅いペシミゼーションに使用します。 Multi-armed Banditアルゴリズムの中心。



github.com/influxdb/influxdb

メトリックのベース。 グラファイトよりも高速。 分割およびala SQLのフェッチをサポートします。



godoc.org/code.google.com/p/go.crypto/nacl

楕円曲線に高速暗号化を適用しました。



All Articles