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

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
楕円曲線に高速暗号化を適用しました。

Source: https://habr.com/ru/post/J232367/


All Articles