8

私はSpring Tips: Functional Reactive Endpoints with Spring Framework 5.0を見てきましたが、春の原子炉について少しは読んだけど、それはかなり理解できません。春の原子炉とネットのvs tomcat http

nettyとspring reactorが有効であることを前提に、終点がFlux/Monoのインスタンス(jacksonified)を返すことの利点は何ですか?私は当初、HTTPリクエスト/レスポンスのコンテキストでは、反応性のあるストリームは、サーバーが開いているチャンネルでデータを受信者にプッシュするWebソケットのように機能すると想定していましたが、これはそうではありません。

また、netcatは実際には反応型プログラミングではtomcatより優れていますか?

これらの質問がばかげているとは申し訳ありませんが、私はこの新しいフレームワークの方向性の目的をよく理解していません。それはなぜ起こったのですか、どのように動作し、どのような問題が解決しましたか?

答えて

7

最近、Devoxx Belgiumで発表された時計をお勧めします。"Reactive Web Application with Spring 5" by Rossen Stoyanchev

彼は表面上反応性のWebコントローラは、(以下に)Spring MVCのHTTPサーブレットリクエスト/レスポンスコントローラーのように見えるが、それは彼がどのように語る

実際

@GetMapping("https://stackoverflow.com/users/{id}") 
public Mono<User> getUser(@PathValiable Long id) { 
    return this.userRepository.findById(id); 
} 

@GetMapping("/users") 
public Flux<User> getUsers() { 
    return this.userRepository.findAll(); 
} 
ではありませんどのように話して、そこに Servlet 3.1サーブレット3.1に準拠したWebコンテナ(JettyとTomcat)のSpring 5の変更の一部として、ノンブロッキングが完全に反応しないように、そしてサーブレット3.1とリアクティブストリームを接続するグルーコードがどのように実装されているのかは分かりません。

もちろん、完全に反応していますReactive non-blocking準拠のサーバー(Netty、Undertow)は、Reactive Streamsを実行するためにサポートされています。

1

NettyがTomcatよりも優れているとは限りません。 実装が異なります。 Tomcatはjava NIOを使用してサーブレット3.1仕様を実装します。それと同時に、nettyもNIOを使用しますが、カスタムAPIを導入しています。 Netletでサーブレット3.1がどのように実装されたかを把握したい場合は、このビデオをご覧ください。https://youtu.be/uGXsnB2S_vc

関連する問題