Quarkus 1.9 リリース - Micrometer 拡張機能の成熟、複数のRedisクライアント、Quarkiverse

Red Hat で Solution Architect として Quarkus を担当している伊藤ちひろ(@chiroito)です。

この記事は、Quarkus.io のブログ記事、Quarkus 1.9 released - Micrometer extension maturing, multiple Redis clients, Quarkiverse の翻訳記事です。

Quarkus 1.9 では、既存の機能セットに加えて、多くの改良が加えられています。

  • Micrometer の拡張機能が成熟
  • Kafka がメトリクスを持つ
  • 複数のRedisクライアントがサポート(Sentinel接続と同様)
  • Reactive Routes で Bean Validation をサポート
  • SmallRye Reactive Messaging が 2.4.0 に、Mutiny が 0.9.0 にアップグレード

いつものように、バグ修正や使い勝手の改善、ドキュメントの改善なども行われています。

最後になりましたが、The Quarkiverse initiativeも始めました。

移行ガイド

既存のアプリケーションの移行をお考えですか?こちらが 1.9への移行ガイドです。

最大の変更点は、1.3 で非推奨になった古いデータソース(JDBC と reactive)の設定がなくなったことです。もしデータソースが動かなくなった場合は、新しい設定にまだ移行していないことが原因でしょう。

Java 11 風の GraalVM 20.2 が推奨の GraalVM のバージョンです。

何が新しいの?

Micrometer の拡張機能が成熟

1.8 は新しい Micrometer 拡張機能を導入しました。1.9 の開発サイクルの間に多くの成熟を遂げ、現在では Quarkus でメトリクスを収集するための推奨される方法となっています。

例えば、Kafka のメトリクスを取得できるようになりました。

Bean Validation と Reactive Routes

Bean Validation 制約が Reactive Routes メソッドのパラメータと戻り値(Uniはサポートされていますが、Multiはサポートされていません)に考慮されるようになりました。

さらなる Reactive の変更

SmallRye Reactive Messaging は 2.4.0 にアップグレードされました。これはいくつかの改善が含まれています。Kafka のクラウドイベントのサポート、バグ修正、Mutiny の 0.9.0 への変更などです。

プルリクエスト記述に主な変更点が記載されています。

quarkus-rest-client-mutiny 拡張機能のおかげで、REST クライアントで Mutiny を使うことがこれまで以上に簡単になりました。

@TestTransaction アノテーション

このアノテーションは、コミュニティからの定期的なリクエストへの対応です:テストで行われた変更をロールバックする機能を持つことです。

テストに @Transactional というアノテーションを付ける(これは変更を永続化させます)代わりに、テストに @TestTransaction というアノテーションを付けると、テストの終了時に変更が自動的にロールバックされます。

複数の Redis クライアント

今までは1つの Redis インスタンスにしか接続できませんでした。

1.9 からは、複数のインスタンスに接続できるようになりました。また、Sentinel もサポートされるようになりました。

その他の変更点

  • 今は JAXP の拡張機能を別に持ちます。今までこれは JAXB の拡張機能に織り込まれていました。
  • Hibernate ORM が 5.4.22.Final に、Hibernate Reactive が 1.0.0.Alpha10 にアップグレードされました。

完全な変更ログ

1.9.0.CR11.9.0.Final の完全な変更ログはGitHubで入手できます。

Quarkiverse

もし拡張機能のエコシステムがなければ、Quarkus はこれほどの成功を収められなかったでしょう。当初は、すべての拡張機能をコアの Quarkus リポジトリに追加していました。ですが、最終的にはオーバーヘッドが大きすぎたり、コアに拡張機能を含めることが必ずしも賢明とは限らないものになってしまいました。その後、Quarkus の外部に独自のリポジトリを作成した人もいますが、そうでない人もいます。誰もがビルドセットアップを維持するためのオーバーヘッドを望んでいるわけではないからです。他のケースでは、実際には拡張機能のアイデアがあったものの、コアに含めるにはまだ十分に固まっていないこともあります。(その結果、他のコミュニティのメンバーが興味を持ち、助けを求めているのを見つけることができませんでした)。

Quarkiverse との出会い!

Quarkiverse は、提供する GitHub の別組織(https://github.com/quarkiverse)です。

  • Maven Central への Maven リリースの自動化された安全な公開
  • Quarkus のビルド/リリースを使用して、拡張機能のクロステストを自動化しました(https://github.com/quarkusio/quarkus-ecosystem-ciを参照)。
  • 拡張機能(code.quarkus.io、コマンドライン、IDEツールなど)を参照するためにQuarkusツールで使用されるレジストリに含まれています。
  • プロジェクトの一貫したフォーマットとリリース
  • より大きなコミュニティにまさる素晴らしい協力の場

もしあなたが拡張機能の開発をリードしたいのであれば、それがまだGitHubで提案されていないか確認したり、または拡張機能提案の課題を作成を参照してください。

ブログの記事が作業中です。そこで詳細をお伝えしましょう。とりあえず、既にある拡張機能をチェックしてみてください。

ADOPTERS.md

Quarkusの使用に関する情報を共有するために、リポジトリのルートにADOPTERS.mdファイルを追加しました。

Quarkusを使用していて、私たちのブログでインタビューを受けたい場合、または単にこのファイルに追加したい場合は、私たちにご連絡ください。

貢献者

Quarkusには現在378人の貢献者がいます。皆様、本当にありがとうございました。

特に1.9リリースについてはみなさんのおかげです。

Abel Salgado Romero, Adam Bien, Alex Soto, Alexey Loubyansky, AlexeyAnufriev, Andrea Cosentino, Andy Damevin, Anh Le (Andy), Armel Soro, Arne Mejlholm, asodja, Auri Munoz, Bill Burke, Bobby Philip, Centro de Computos, Chris Laprun, Clement Escoffier, Daniel Badawi, Daniel Platz, David M. Lloyd, Dillon Fearns, Dmitry Shohov, Driss Amri, Dušan Križan, Emanuel Alves, Enercido Alcantara, Erin Schnabel, Fabian Stäber, Fabio Iwakoshi, Falko Modler, Foivos Zakkak, Galder Zamarreño, Garima Monga, Gautier de Saint Martin Lacaze, Geoffrey De Smet, George Gastaldi, Georgios Andrianakis, ghokun, Guillaume Le Floch, Guillaume Smet, Gunnar Morling, Gytis Trikleris, Harsh Madhani, Harsha R, Ioannis Canellos, Jack Hu, Jaikiran Pai, Jakub Scholz, Jan Martiška, João Lucas Scharf, Julien Ponge, Justin Lee, kdnakt, Ken Finnigan, Kevin Viet, Knut Wannheden, Ladislav Thon, Laurent Broudoux, lburgazzoli, Loïc Mathieu, Maciej Swiderski, Manyanda Chitimbo, Marcin Czeczko, Markus Heberling, Martin Kouba, Matej Vasek, Max Rydahl Andersen, Michal Krzywanski Michał Górniewski, Michał Szynkiewicz, Miguel Serra, Nathan Erwin, Oliver Libutzki, Paul Kunysch, Pedro Igor, Peter Palaga, Phillip Krüger, Roberto Cortez, Rohan Maity, Ron Sigal, Rostislav Svoboda, Sanne Grinovero, Sergey Beryozkin, Simon Bengtsson, Stephane Epardaud, Stuart Douglas, Thomas Pfaff, Vincent Sevel, Vincent Sourin, Vinícius Ferraz Campos Florentino, William Burns, xstefank, Xumk and Yoann Rodière

参加しよう

私たちはあなたのフィードバックをとても大切にしていますので、バグを報告し、改善を依頼してください...一緒に何か素晴らしいものを作りましょう!

Quarkusのユーザーや好奇心の強い人は、恥ずかしがらずに歓迎コミュニティに参加してください。

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。