LINE株式会社 長谷部 良輔 SPRING FEST ’19での発表資料です。 https://springfest2019.springframework.jp/
タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。
はじめに 今回はSpring5から追加されたSpring WebFluxについて簡単に説明します 今回のゴールはWebFluxの概念的なところを理解して、Hello Worldするところまでとします RequestParameterとかRequestBodyとかについては別記事でまとめます(多分...) 背景 1年くらい前からWebFluxの存在は知っていた(Spring Fest2018あたりで谷本さんの話は聞きました) ただ、必要に迫られることがなかったので特に勉強してなかった しかし、今回APIをWebFluxで実装することになり、ちゃんと勉強しようと思った次第です WebFluxとは? 2017年8月に一般リリースされたSpring5から追加された機能 Spring5の最大の特徴となっているのが、リアクティブ・プログラミング・モデル 非同期であり、ノンブロッキング型であること 少な
Spring WebFluxに関する、いまの理解を整理する。 Spring WebFlux 以前の問題点Tomcatは1リクエスト処理するのに1スレッドを割り当てる。リクエストが終わるまでスレッドは解放されないため、処理にブロッキングな部分があったとしてもスレッドを占有し続ける。 ネットワークI/O、外部サービス呼び出し、DBアクセスなどが典型的なブロッキング箇所で、例えば、低速なネットワークからのリクエストをひとたびreadすると、のんきにスレッドを占有してリクエストの到着を待つことになる。 このとき、同時に多くのリクエストを捌くためには多くのスレッドが必要になる。 Java ブロッキングとかノンブロッキングを理解したい - SIerだけど技術やりたいブログwww.kimullaa.com ただしスレッド生成には(少なくともスレッドごとに確保するスタック領域分の)メモリが必要。 参考:
昨今、マイクロサービスアーキテクチャによるアプケーション開発がとても注目を集めています。マイクロサービスアーキテクチャでは、文字通り小さなサービスを多数組み合わせて1つのアプリケーションを構成することから、個々のサービスには高いリソース効率が求められます。また、従来のモノリシックなアプリケーションと比べて、サービス間通信が多く発生することから、高い処理能力(高スループット)も必要です。 Javaで高いリソース効率性と高い処理能力を持つアプリケーションを開発するためのフレームワークの一つとして、Spring Frameworkファミリーの「Spring WebFlux」があります。 本連載では、Spring WebFluxによるアプリケーションの作り方をはじめ、Spring WebFluxを理解する上で重要となる「リアクティブプログラミング」や、Spring WebFluxベースのHTTPク
Apollo(GraphQL)+gRPC+WebFlux(Reactive)を利用して2020年のモダンアーキテクチャアプリを作ってみたJavaScriptKotlinSpringBootgRPCGraphQL はじめに 本記事では2019年から2020年にかけての年末年始を使って開発した、"Hello Worldを出力するアプリ"の話をしたいと思います。 Hello Worldを出力する、と言っても単にフロントエンドでReactの<p>Hello, World!</p>と書いて出力したという話ではなく、 フロントエンドでApollo Clientを使ってGraphQLでQuery/Mutationのリクエストを行い、 BFF(Backend For Frontend)のApollo ServerでGraphQLのリクエストに応じたgRPCのリクエストをバックエンドへ内部的に行い、 バック
[!] この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。 みなさんはリアクティブプログラミングという言葉を聞いたことがあるでしょうか? リアクティブプログラミングは、リアルタイムに発生するストリームデータを非同期に処理するプログラミングパラダイムです。リアクティブプログラミングでアプリケーションを開発できるライブラリにはAkka ⧉やSpring WebFlux ⧉、ReactiveX ⧉などがあります。 この記事では、その中のSpring WebFluxについて説明し、実際にアプリケーションを開発して学んだことを紹介します。なお、Spring Frameworkの仕組みに関する詳細な説明は行いませんのでご了承ください。 Spring WebFluxの紹介 Spring WebFluxは、リアクティブプログラミングによってノンブロッキングで非
今回は、Spring WebFluxを使う上で欠かせない要素である「リアクティブプログラミング」と「Reactor」について解説します。 リアクティブプログラミングの基本 リアクティブプログラミングとは、データに着目したイベント駆動型のプログラミングの一種で、 通知されるデータを受け取って処理を行うハンドラを実装することによって連続的なデータを処理するプログラミング手法です。 リアクティブプログラミングを用いている身近な例としてよく挙げられるものが表計算ソフトです。ここでは、表計算ソフトの例を使い、リアクティブプログラミングの基本的な考え方について解説します。 下図のように、表計算ソフトのシート上に、セルA、セルBがあるとします。このとき、セルBには「セルA * 2」という計算式が定義されています。この計算式が「通知されるデータを受け取って処理を行うハンドラ」にあたります。 では、次にセル
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く