Open1
grpcで入れ子通信をしてしまった話
はじめに
とある案件でgrpcを使うことになった。grpc初心者の僕はドキュメントを読みながらやっていたが、変なところで詰まったためメモをする。
つまったこと
以下のようなことを実装してしまっていた。設計時とコーディング時に全く気づいていなくて、全く大丈夫だろうとおもっていた。
しかし、今見返してみたらなんて冗長な通信方法なんだ!
この状態では、2つ目のstreamで処理したデータを送信(request)で固まってしまうことが確認された。
全くエラーも儚いので、最初はなんでこれで止まるのかがわからなかった....(ほぼ一日を無駄にしました。)
原因
これでなぜ止まるのかというと、おそらく2つのシステム間の通信は、一つしかできない?(もしかしたらスレッド処理的なもので実装できるかも)
なので、あまり上記のような通信はしてはいけない気がする。
解決方法
そこで、簡単にいかの方法で通信するようにした。
スッキリしたし、全く問題なく動作するようになった。