kamakura.go #5
kamakura.go #5
Good evening I have a TCP server clients can connect to. Pretty straightforward. But the problem is, all my clients use mobile network and are constantly on the move. Losing connection without notifying the server via FIN or RST is a common situation. So the server has this lingering connection and thinks a client is online when in reality it is not. My first solution was to wait for a while; if a
pprofのWeb UIの "heap" の数って何を表すんだろう? pic.twitter.com/JWlAgIL5Ka— k1LoW (@k1LoW) 2018年9月7日 tcprxyというTCPプロキシを作っています。 github.com 8月中旬くらいから「よし、プロダクションレディになるくらいまで開発してやろう」と、時間を見つけては設定ファイルを読めるようにしたり、server_starterと連携できるようにしたり、取得できる情報の充実を図ったりしていました。いろいろ機能を追加してみたのですがそれはまたの機会に。 そして、「あとは、常時起動していてメモリリークが発生しないことを確認すればよいだろう」と、とりあえず見よう見まねで net/http/pprof を使ってブラウザ上からプロファイルを確認してみました。 具体的には main.go を以下のように修正して、tcprxy
6月からDMM.comラボでミドルウェアを作るエンジニアインターンをしている@kawasin73です。 DMM.comラボではluaで実装されたKVS(キーバリューストア)を利用しています。 これは、TCPの上で独自プロトコルで通信しており、URIのPathがKeyとなり最長共通接頭辞検索をするKVSで、社内でluaの皮を被ったC言語で実装されたものが運用されています。 この度、このKVSをGo言語で再実装することになり、設計は既存のミドルウェアを踏襲した形で DMM.com ラボの方が行い、実装は僕がすることになりました。 Go言語の実装手法(goroutine や channel等)については僕が学びながらそれについて都度相談するというスタイルで行なっています。 その開発記を連載しています。 第2回の今回は、TCPサーバーを実装する時にパフォーマンス上気をつけるべきことと、開発の手順を
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く