Carpe Diem

備忘録

2019-01-01から1ヶ月間の記事一覧

Circusを使ってgraceful restart

概要 Nginx + GoのApp という構成をとっている時に、単純にデプロイでGoだけ更新するとNginxからは [error] 1413#1413: *1 connect() failed (111: Connection refused) [error] 1412#1412: *3 connect() failed (111: Connection refused) [error] 1412#141…

.proto ファイルの整形に clang-format を使う

概要 gRPCで通信しようとすると.protoファイルが沢山出てきます。 ただ人によってインデントが異なったりするのは良くないので、何かしらformatterが無いかなと探したら github.com こちらのissueで「Googleではclang-formatを使ってるよ」という回答があっ…

VPN接続するとどうして別ネットワークにアクセスできるのか

概要 VPNサーバをAWSに置くことで内部ネットワークに外部からアクセスする手法がありますが、どうしてそれができるのかを知りたくなって調べてみました。 環境 VPNサーバ Ubuntu v18.04 pritunl v1.29.1958.76 クライアント macOS Mojave 10.14.2 ネットワー…

CircleCI 2.1 でconfigの記述をシンプルにする

概要 christina04.hatenablog.com でCircleCIの使い方を説明しましたが、2.1からconfigの記述がよりシンプルになりましたので説明します。 環境 CircleCI 2.1 設定 CircleCI側 まずはAdvanced Settingsで2.1の機能が使えるようにします。 古いプロジェクトだ…

goroutineでのpanicのハンドリング その2

Go

概要 christina04.hatenablog.com で書いていなかったことの追加です。 環境 golang 1.11.4 recoverしたあとのエラーハンドリングをどうするか panicをrecoverしたものはいいものの、 func f() { defer func() { if r := recover(); r != nil { fmt.Println(…

ConsulでService登録をした時のACLでハマった話

概要 Consulではserviceを登録することでService Discovery機能を活用することができます。 例えば "service": { "name": "payment", "port": 9090, "tags": ["development"] } のように設定をすると、 $ dig @localhost -p 8600 payment.service.consul でp…