[戻る ]

Java読書会BOF「データ指向アプリケーションデザイン」を読む会 第3回

開催概要
日時 2020年12月19日 10:00 - 17:00
場所 川崎市産業振興会館 第3会議室
出席者(敬称略) 松永、遠藤、加藤、平山、岩室、高橋(智)、高橋(徹)
  • 本日は、p.123 4.1.2.1 バイナリエンコーディングから読書開始です。

4.1.2.1 バイナリエンコーディング

4.1.3 ThriftとProtocol Buffers

  • フィールドタグの数値は人が書くのか?
    • 後の項でスキーマ進化の話題に含まれるので読み進めよう
  • p.129 上4行目 「enabledを指定されると実行時にチェックが行われ、」の enabledとは、唐突に登場するがスキーマツールのオプションのことか?
  • p.128 図4-4 終端がないので、どうやって1つのオブジェクトを区切るのか?
    • 上位のレイヤーでサイズを指定するとか

4.1.4 Avro

  • ライタースキーマとリーダースキーマを分けているのがミソ

4.2 データフローの形態

4.2.1 データベース経由でのデータフロー

  • 図4-7 この書籍で初めてJavaコードが登場

4.2.2 サービス経由でのデータフロー:RESTとRPC

  • マイクロサービスアーキテクチャの文で参照されている文献[32]の著者は、 読書会の課題図書投票で惜敗した「マイクロサービスパターン」の著者。

4.2.2.1 Webサービス

  • RESTとRESTfulの違いは何?
    • 厳密なRESTはパスにバージョンを含めてはならない。HTTPヘッダーに入れ てネゴシエーションが本来。

4.2.2.2 リモートプロシージャコール(RPC)の問題

  • 誤植 p.144 下6行目 「遅れる」→「送れる」
  • p.145 2^53 よりも大きい数値に関するJavaScriptの問題
    • ECMAScript 2020では BigIntが導入されるのでこの制約が緩和

4.2.3 メッセージパッシングによるデータフロー

  • 誤植 p.147 上8行目 「メッセージ試行」→「メッセージ指向」
  • p.160 地図が秀逸
    • クオラムは多数決(後の項で解説あり)
    • リーダは、Leader

5.1 リーダとフォロワー

  • 誤植 p.163 上12行目 「DRDB」→「DRBD」(Distributed Replication Block Device)

5.1.3 ノード障害への対応

  • フェイルオーバーは難しい。参加者から苦労話の体験談が続々と
    • 昇格したフォロワーがリードレプリカのままだった

5.1.4 レプリケーションログの実装

  • 5章の冒頭の地図にあった「物理海岸」、「論理海岸」とは、この項で語ら れるWAL(物理)と論理ログのことですね。
  • 誤植 p.172 上15行目 「レプリケーションによりも」→「レプリケーション よりも」

5.2 レプリケーションラグにまつわる問題

  • 図5-3 は、NoSQLでは「あるある」
    • DynamoDBでは、コンシステントリードで回避可能、ただし時間がかかる
    • S3 は仕様がつい先週変更され、putが結果整合性から強い整合性となった
  • 誤植 p.174 下3行目 「たとえ」→「たとえば」

本日は、p.179 の 5.3.1 まで読みました。 次回は、p.179 の 5.3.1.1 マルチデータセンターでの運用 からです。

[戻る ]