LINE株式会社 長谷部 良輔 SPRING FEST ’19での発表資料です。 https://springfest2019.springframework.jp/
タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。
アソビューAdvent Calendar 2022の3日目の記事です。 こんにちは、バックエンドの開発を担当しているけんすーです。 今回はアソビュー内のAPI Gatewayで利用しているSpring WebFluxについて紹介したいと思います。 はじめに Spring WebFluxとは Spring5から追加された機能で、ノンブロッキングな処理を実行できます。 従来のSpring MVCではリクエストの応答が返ってくるまでスレッドを占有し続けてしまい、別の処理を実行する度に新しいスレッドを生成する必要がありました。 一方で、Spring WebFluxではスレッドを占有することなく、そのスレッドを使い回して処理を実行できるため、 少ないスレッドでリクエストを大量に捌くことができます。そのため、API Gatewayのような複数のサービスを集約し、トラフィックの増加が見込まれるレイヤーに
はじめに 今回は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 ただしスレッド生成には(少なくともスレッドごとに確保するスタック領域分の)メモリが必要。 参考:
こちらの記事は、アソビュー! Advent Calendar 2023の20日目(B面)です。 こんにちは! アソビューでバックエンドエンジニアをしている島田です。 そろそろクリスマスが近づいていますが、4歳の息子に去年は3歳で3つのプレゼントがあったから今年は4つだよね?と末恐ろしいことを言われて恐々としています... (お菓子セットで逃げようかと思います) さて本題ですが、SaaS向けシステムの新規開発を行い、その中でSpring Cloud GatewayにSpring SecurityのOAuth 2.0クライアントを実装しました。 アソビューのバックエンドシステムは、さまざまなアプリケーションで構成されており、それぞれがマイクロサービスとして運用されています。 これにより、バックエンドは分散した形態をとっていますが、外部に公開するAPIに関しては、ユーザーに対して統一感のあるイン
昨今、マイクロサービスアーキテクチャによるアプケーション開発がとても注目を集めています。マイクロサービスアーキテクチャでは、文字通り小さなサービスを多数組み合わせて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」という計算式が定義されています。この計算式が「通知されるデータを受け取って処理を行うハンドラ」にあたります。 では、次にセル
概要 Spring Security を使う場合、Spring WebFlux と Spring MVC では仕組みが異なっています。このため、Spring MVC と併せて使う場合のカスタマイズ方法と Spring WebFlux と併せて使う場合のカスタマイズ方法も異なります。Spring Security を Spring WebFlux と併せて使う場合のカスタマイズ方法を少しだけ調べました。なお、コードは Kotlin で書かれています。 目次 概要 目次 確認環境 参考情報 解説 仕組み カスタマイズ Spec の設定を変える WebFilter を新規作成して登録する 確認環境 Spring Boot 2.0.3 Kotlin 1.2.50 参考情報 Spring Security 5.0 解剖速報 概略、クラス構造、基本的な使い方 GitHub - raphaelDL/sp
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く