Tech blog

07/122019

JSUG勉強会 2019その7 メモ

Spring Initializr

https://start.spring.io/

クラウド時代だから spring-retry フレームワーク

短時間で復旧している可能性が高いなら、自動リトライ
そもそも通信過多なら、スロットリング

aws-sdk-java
スロットリングとリトライの両方を内蔵している

JDBC 接続のリトライ
REST-API の HTTP リクエストのリトライ

RDS のフェイルオーバー
60-120 秒かかる.

db.biz.internal は、CNAME:エイリアス名
ホスト名:フェイルオーバー後に エイリアスが変わる。

AWS:既存の接続の再確立が必要となります。
JVM が生きている間は、DNS 検索結果を一生キャッシュするのがデフォルトなので、
エイリアスの変更を JVM が察知しない。
→3 秒にした。

Amazon RDS のフェイルオーバープロセス
フェイルオーバーメカニズムでは、スタンバイ DB インスタンスをポイントするように DB インスタンスの DNS レコードが自動的に変更されます。したがって、DB インスタンスへの既存の接続の再確立が必要になります。Java DNS キャッシュメカニズムがどのように機能するかによって、JVM 環境の再設定が必要になる場合があります。 https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html#Concepts.MultiAZ.Failover

HikariCP
ConnectionTimeout などの設定は重要。数秒に設定したほうがいい。

RetryTemplate
simple retry policy

フェイルオーバー試験をすべき。

スライド

クラウド時代だから Spring-Retry フレームワーク https://docs.google.com/presentation/d/1UjSUpSgSdicpTnQUziwe4_FzZFrNMQ7fcGt4gzv_SEk/edit#slide=id.g5d22b951f3_0_107

フレームワーク移行で学ぶ Spring Boot のつまづきポイント

View へのデータの渡し方
Helper クラスを用意して、チーム内で同様の渡し方を実現する。

github: dbflute-exmaple-on-springboot

これで怖くない!?コードリーディングで学ぶ Spring Security

https://www.slideshare.net/masatoshitada7/spring-security-meetup