公開日:
以前から名前は知っていたけど触ったことのなかったgRPCを触ってみたので備忘として残しておきます。
Zennの本を読みました。これさえ読めば大体概要は掴めると思います。
https://zenn.dev/hsaki/books/golang-grpc-starting
個人的なポイントは以下の通り
Zennの本を読み終わって自分でも何か作ってみたいと思ったので、ChatGPTに題材を考えてもらいました。
なかなか面白そう、、
というわけで、ログをクライアントストリーミングでサーバーに送信するコードを書いてみました。
リポジトリ -> https://github.com/sano11o1/snack_logger/
(Zennのコードちょっといじっただけじゃない??ってツッコミがありそう。それはそう)
おおまかな処理を書くと以下のようになる。
(左がechoサーバー、右がログを受け取るサーバー)
一点問題があって、ログを送信する際にechoサーバー側では以下のように明示的にログ出力のためのメソッドを呼ぶ必要があり大変不便である。
if err := Info(fmt.Sprintf("Hello, World! %d", i), stream); err != nil {
return err
}
この問題を解決するにはechoサーバーの標準出力を監視する何らかの仕組みが必要になります。
例えばAWS Lambdaで吐き出したログは自動的にCloudWatchに転送されるけど、どういった仕組みになっているんでしょうかね、、
これはもはやgRPC関係ないですが面白そうなのでいつか試してみたいです。
それでは、また