ゆっくり本を読む時間があった 2023-09-09の作業メモ
義理の母が来てくれていたので、数ヶ月ぶりに午後は本を読んだりゴロゴロしたりできた。
リアルタイム通信を実現するための技術として次の4つがとりあげられている。
ポーリング
ロングポーリング
SSE
WebSocket
ロングポーリングというのは、ロングポーリング用のエンドポイントに対してコネクションを張ったまま更新を監視する。
そのため、Nginx でレスポンスタイムの長いアクセスを集計するとき Socket.io サーバーへのアクセスは除外して集計している。これは Socket.io に「最初はロングポーリングで接続し、その後 WebSocket が利用可能なら WebSocket にスイッチ」する機能があるため単純にレスポンスタイムを集計するときはノイズとなってしまう。
具体的な機能を題材に、技術の組み合わせやトレードオフが紹介されている。半年ぐらいまえに買ってはいたが半分ぐらいしか読めていなかった。
個人的に、レートリミッターと通知システムの章を興味深く読んだ。あと、オートコンプリートシステムでトライ木の説明が出てきて驚いた(プログラミングコンンテストの勉強のときに読んでいたが、実務では使わないだろうと思っていたので)。
知識として身につけておくだけでも役に立ちそうな情報がたくさんありそうだった。
大部分が非同期メッセージングの構成要素の説明という印象である。「システム設計の面接試験」でメッセージキューが取り上げられていたのでパラパラ見た。
実際自分は非同期メッセージングの構築・運用には携わったことはないので、善し悪しはわからない。
日本語での概要はここにあったので、意味をとりづらいところを参考にしながら読んでいる。