Spring

Spring BootアプリのメトリクスをMicrometerで収集する #micrometer

Micrometer (micrometer-core)には、Javaでよく使われるライブラリ、ミドルウェア、JVM自身のメトリクスを収集するためのBinderと呼ばれるClassと、その設定を行うAutoConfigurationが含まれているので簡単にメトリクス収集を始める事ができます。
(ちなみに、MicrometerはJMXには依存してないので、JVMオプションでJMXを有効する必要はありません)

それらをいつくか紹介してみようと思います。

Spring Boot 1.5.xでURI毎のレイテンシをモニタリングする設定

さっそくですが、以下のブログエントリーを見てください。

BLOG.IK.AM - Spring Boot 2とMicrometerでPrometheusを使うときの便利PromQLメモ

Spring Bootでは、Micrometerを依存ライブラリに追加していつくかの設定を行うと、URI毎のレイテンシが簡単にモニタリングできるようになっています。

WebFluxにおけるFilter

Spring Boot 2.0のGAがリリースされて数週間経ちましたね。

2.0には大きな変更がいくつか含まれていますが、その1つがSpring 5で追加されたWebFluxによるリアクティブプログラミングです。

Spring Boot DevTools + Doma2の場合のDomaConfig

Spring Boot 1.3で追加されたDevToolsを使うと、hot deploy(アプリを起動した状態でソースの修正を反映させる)が出来るようになります

DevToolsのhot deployは100%成功はしないのですが、有効にしておくと便利です

ですが、Doma2を組み合わせて使う場合は設定をカスタマイズしておかないとクラスローダーの問題でハマる事になります

Java+Reactでサーバサイドレンダリングするアプリのベンチマークを取った

僕はフロントエンドまわりの技術には疎いのですが、Reactは今も人気が高いように見えます

サーバサイドでReactを使ってページのレンダリング(サーバサイドレンダリング)を行ったりもするようで、

そうすればサーバサイドとフロントエンドで処理が共通化出来て便利そうです

ISUCON4予選問題のJava実装を作りました #isucon #isucon4

僕はJavaも好きなので、ISUCON4予選問題のJava実装を作ってみました。
フレームワークには最近Java界隈で話題のSpring Bootを使っています。

ISUCON興味あるんだけど、Java実装が無かったので参加しなかったという方や、Spring Bootに興味がある方はぜひ試してみてください!
MySQLのCREATE文やINSERT文も含まれていますので、アプリを動かすだけであればローカル環境で動きます。

Spring BootでアクティブなHTTPセッション数を取得する

Spring Bootのデフォルト組込サーバはTomcatなのですが、(pom.xml|build.gradle)に依存関係を設定する事でJettyも選択可能になっています。
(設定方法は マニュアル を参照してください)

Jettyもアプリケーションサーバとして十分な実績があり、早い時期からWebSocket対応やJava8対応がされているので、
TomcatではなくJettyを使いたい人も多いんじゃないでしょうか?
僕もその一人です :)

Domaで実行したSQLを取得する

アプリで実行したSQLをDBに保存するという要件があるのですが、
Spring + Domaで実現する方法がわからず、GitHubのDomaリポジトリに質問して教えて頂きました。
@nakamura_toさんありがとうございます。