はじめに
過去に書いた https://memo.koumei2.com/goa/ の続編です。
Goa の Getting Started に書かれている gRPC の機能が動かないという問題が起きていました。
Port番号を変えてみる
Getting Started では gRPC は 8080 ポートを使うようなコードになっています。
ふと思いついて、ポート番号を 8080 から変えてみました。
ポート番号は、cmd/calc/main.go の下記を変更してビルドし直すと変えられます。
% diff cmd/calc/main.go.orig cmd/calc/main.go 96c96 < addr := "grpc://localhost:8080" --- > addr := "grpc://localhost:8081"
すると、、、正常に動作しました!
% ./calc-cli --url="grpc://localhost:8081" calc add --message '{"a": 1, "b": 2}' 3
localhost指定をやめる
ポート番号を 8080 に戻してビルドし直します。
すると、またエラーが出る状態になります。
しかし、サーバ側では下記のように出力されているので、Listen はされているはず。。。
[calcapi] 15:40:30 gRPC server listening on "localhost:8080"
ということで、ダメ元で localhost ではなく、127.0.0.1 でアクセスしてみました。
すると、、、
% ./calc-cli --url="grpc://127.0.0.1:8080" calc add --message '{"a": 1, "b": 2}' 3
正常に返ってきました!?
どういうこと??
暫定解決案
ここまで現象が絞れたことで、localhost 指定が1つの原因になっていることがわかり、下記の記事のようになっていることが判明しました。
一応、IPv6 の localhost 指定を無効にして事無きを得ていますが、結局のところ、上記の記事のように localhost:8080 だけが動作しない原因はまだ不明です。。。
コメント