問題タブ [project-reactor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java リアクティブ フレームワークの比較
Akka、Vert.x、RxJava、Reactor、QBit など、Java でのリアクティブ アプリケーションの構築に役立つと主張する多くのフレームワーク/ライブラリを目にします。
アプローチ、機能、長所、短所などが異なるようです。詳細な比較は見つかりませんでした。これらの各フレームワークに関するドキュメントがありますが、違いを理解するには不十分です。
主要な Java リアクティブ フレームワークの違いは何ですか?
また、Java リアクティブ フレームワークの選択を後押しするアプリケーション要件は何ですか?
お時間をいただきありがとうございます。
unit-testing - Project Reactor: ブロードキャスターが終了するまで待ちます
文字列を受け取り、それらを StringBuilder に追加する Broadcaster があります。
テストしたいです。
Thread#sleep
ブロードキャスターが文字列の処理を終えるまで、私は待たなければなりません。削除したいsleep
。
使ってみてControl#debug()
失敗。
reactor - Gradle の依存関係が利用できないため、https://github.com/reactor/reactor-samples をビルドできません
Gradleプラグインを使用して、Eclipseでgradleプロジェクトを複製してインポートしました。
しかし、すべてのリアクタ クラスでインポート エラーが発生しています。プロジェクトで参照されている BUILD.SNAPSHOTS が見つかりません。
./gradlew compileJava :compileJava
FAILURE: ビルドは例外で失敗しました。
問題: 構成 ':compile' のすべての依存関係を解決できませんでした。
io.projectreactor:reactor-stream:2.5.0.BUILD-SNAPSHOT が見つかりませんでした。次の場所で検索: ファイル:/Users/debasish/.m2/repository/io/projectreactor/reactor-stream/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml ファイル:/Users/debasish/.m2/repository /io/projectreactor/reactor-stream/2.5.0.BUILD-SNAPSHOT/reactor-stream-2.5.0.BUILD-SNAPSHOT.pom ファイル:/Users/debasish/.m2/repository/io/projectreactor/reactor-stream/ 2.5.0.BUILD-SNAPSHOT/reactor-stream-2.5.0.BUILD-SNAPSHOT.jar https://repo1.maven.org/maven2/io/projectreactor/reactor-stream/2.5.0.BUILD-SNAPSHOT/maven -metadata.xml https://repo1.maven.org/maven2/io/projectreactor/reactor-stream/2.5.0.BUILD-SNAPSHOT/reactor-stream-2.5.0.BUILD-SNAPSHOT.pom https://repo1.maven.org/maven2/io/projectreactor/reactor-stream/2.5.0.BUILD-SNAPSHOT/reactor-stream-2.5.0.BUILD-SNAPSHOT.jar http://repo.spring.io /release/io/projectreactor/reactor-stream/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml http://repo.spring.io/release/io/projectreactor/reactor-stream/2.5.0.BUILD- SNAPSHOT/reactor-stream-2.5.0.BUILD-SNAPSHOT.pom http://repo.spring.io/release/io/projectreactor/reactor-stream/2.5.0.BUILD-SNAPSHOT/reactor-stream-2.5.0 .BUILD-SNAPSHOT.jar https://jcenter.bintray.com/io/projectreactor/reactor-stream/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml https://jcenter.bintray.com/io/projectreactor /reactor-stream/2.5.0.BUILD-SNAPSHOT/reactor-stream-2.5.0.BUILD-SNAPSHOT.pom https://jcenter.bintray.com/io/projectreactor/reactor-stream/2.5.0.BUILD-SNAPSHOT/reactor-stream-2.5.0.BUILD-SNAPSHOT.jar 必須: io.projectreactor.springone:reactor- samples:0.2.0 io.projectreactor:reactor-bus:2.5.0.BUILD-SNAPSHOT が見つかりませんでした。次の場所で検索: ファイル:/Users/debasish/.m2/repository/io/projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml ファイル:/Users/debasish/.m2/repository /io/projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/reactor-bus-2.5.0.BUILD-SNAPSHOT.pom ファイル:/Users/debasish/.m2/repository/io/projectreactor/reactor-bus/ 2.5.0.BUILD-SNAPSHOT/reactor-bus-2.5.0.BUILD-SNAPSHOT.jar https://repo1.maven.org/maven2/io/projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/maven -metadata.xml https://repo1.maven.org/maven2/io/projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/reactor-bus-2.5.0.BUILD-SNAPSHOT.pom https://repo1.maven.org /maven2/io/projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/reactor-bus-2.5.0.BUILD-SNAPSHOT.jar http://repo.spring.io/release/io/projectreactor/reactor- bus/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml http://repo.spring.io/release/io/projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/reactor-bus-2.5.0 .BUILD-SNAPSHOT.pom http://repo.spring.io/release/io/projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/reactor-bus-2.5.0.BUILD-SNAPSHOT.jar https:/ /jcenter.bintray.com/io/projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml https://jcenter.bintray.com/io/projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/reactor-bus-2.5.0.BUILD-SNAPSHOT.pom https://jcenter.bintray.com/io /projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/reactor-bus-2.5.0.BUILD-SNAPSHOT.jar 必須: io.projectreactor.springone:reactor-samples:0.2.0 io.projectreactor が見つかりませんでした:reactor-groovy:2.5.0.BUILD-SNAPSHOT. 次の場所で検索: ファイル:/Users/debasish/.m2/repository/io/projectreactor/reactor-groovy/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml ファイル:/Users/debasish/.m2/repository /io/projectreactor/reactor-groovy/2.5.0.BUILD-SNAPSHOT/reactor-groovy-2.5.0.BUILD-SNAPSHOT.pom ファイル:/Users/debasish/.m2/repository/io/projectreactor/reactor-groovy/ 2.5.0.BUILD-SNAPSHOT/reactor-groovy-2.5.0.BUILD-SNAPSHOT.jar https://repo1.maven.org/maven2/io/projectreactor/reactor-groovy/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml https://repo1.maven.org/maven2/io/projectreactor/reactor -groovy/2.5.0.BUILD-SNAPSHOT/reactor-groovy-2.5.0.BUILD-SNAPSHOT.pom https://repo1.maven.org/maven2/io/projectreactor/reactor-groovy/2.5.0.BUILD- SNAPSHOT/reactor-groovy-2.5.0.BUILD-SNAPSHOT.jar http://repo.spring.io/release/io/projectreactor/reactor-groovy/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml http: //repo.spring.io/release/io/projectreactor/reactor-groovy/2.5.0.BUILD-SNAPSHOT/reactor-groovy-2.5.0.BUILD-SNAPSHOT.pom http://repo.spring.io/release /io/projectreactor/reactor-groovy/2.5.0.BUILD-SNAPSHOT/reactor-groovy-2.5.0.BUILD-SNAPSHOT.jar https://jcenter.bintray.com/io/projectreactor/reactor-groovy/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml https://jcenter.bintray.com/io/projectreactor/reactor-groovy/2.5 .0.BUILD-SNAPSHOT/reactor-groovy-2.5.0.BUILD-SNAPSHOT.pom https://jcenter.bintray.com/io/projectreactor/reactor-groovy/2.5.0.BUILD-SNAPSHOT/reactor-groovy- 2.5.0.BUILD-SNAPSHOT.jar 必須: io.projectreactor.springone:reactor-samples:0.2.0 io.projectreactor.spring:reactor-spring-context:2.5.0.BUILD-SNAPSHOT が見つかりませんでした。次の場所で検索: file:/Users/debasish/.m2/repository/io/projectreactor/spring/reactor-spring-context/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml file:/Users/debasish/ .m2/repository/io/projectreactor/spring/reactor-spring-context/2.5.0.BUILD-SNAPSHOT/reactor-spring-context-2.5.0.BUILD-SNAPSHOT.pom ファイル:/Users/debasish/.m2/リポジトリ/io/projectreactor/spring/reactor-spring-context/2.5.0.BUILD-SNAPSHOT/reactor-spring-context-2.5.0.BUILD-SNAPSHOT.jar https://repo1.maven.org/maven2/io /projectreactor/spring/reactor-spring-context/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml https://repo1.maven.org/maven2/io/projectreactor/spring/reactor-spring-context/2.5.0.BUILD-SNAPSHOT/reactor-spring-context-2.5.0.BUILD-SNAPSHOT.pom https:/ /repo1.maven.org/maven2/io/projectreactor/spring/reactor-spring-context/2.5.0.BUILD-SNAPSHOT/reactor-spring-context-2.5.0.BUILD-SNAPSHOT.jar http://repo. spring.io/release/io/projectreactor/spring/reactor-spring-context/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml http://repo.spring.io/release/io/projectreactor/spring/reactor -spring-context/2.5.0.BUILD-SNAPSHOT/reactor-spring-context-2.5.0.BUILD-SNAPSHOT.pom http://repo.spring.io/release/io/projectreactor/spring/reactor-spring- context/2.5.0.BUILD-SNAPSHOT/reactor-spring-context-2.5.0.BUILD-SNAPSHOT.jar https://jcenter.bintray.com/io/projectreactor/spring/reactor-spring-context/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml https://jcenter.bintray.com/io/projectreactor/spring /reactor-spring-context/2.5.0.BUILD-SNAPSHOT/reactor-spring-context-2.5.0.BUILD-SNAPSHOT.pom https://jcenter.bintray.com/io/projectreactor/spring/reactor-spring- context/2.5.0.BUILD-SNAPSHOT/reactor-spring-context-2.5.0.BUILD-SNAPSHOT.jar 必須: io.projectreactor.springone:reactor-samples:0.2.0
試してみてください: --stacktrace オプションを指定して実行し、スタック トレースを取得します。--info または --debug オプションを指定して実行し、より多くのログ出力を取得します。
ビルドに失敗しました
java - プロジェクト Reactor と Netty TCP サーバー - メッセージのデコード時に ByteBuff サイズが 1024 でスタックする
Reactor バージョンと1.2.8.RELEASE
の管理された依存関係を持つSpring Boot バージョンを使用しています。org.projectoreactor.*
1.1.6.RELEASE
私が直面している問題は、カスタム Codec ( reactor.io.encoding.Codec
) 内にあり、指定された Buffer ( reactor.io.Buffer
) は 1024 バイトに制限されていますが、メッセージはその制限を超えています。メッセージをデコードしようとすると、完全なメッセージではなく (部分的なもののみ)、メッセージ全体が予期されるため、デコードに失敗します。
質問 1:適用関数が正しく機能するようにBuffer bytes
( )を増やすにはどうすればよいですか? reactor.io.Buffer
以下の簡単な例:
質問 2: 適用関数 (上記) をチャンク化するにはどうすればよいですか? これは、Netty のバッファーが限界に達すると、適用関数が独自のバッファーを作成 (およびバッファーを管理) し、最終的にメッセージをデコードして、Reactory/Netty がそれを Consumer に渡すことができることを意味します。
注:私の「メイン」メソッドでは、環境をセットアップするために以下が使用されます。Netty サーバーは Windows で実行され、クライアントは Linux で実行されます。これは TCP の Windows 実装に関連していますか?
rx-java - react-ipc、reactive stream io、reactive stream net、reactivesocketの関係は何ですか?
リアクティブストリームに関するGithubで多くのリポジトリを見つけましたが、似ているようです。
ただし、多くのリポジトリは数か月更新されていません。
それらの関係を知りたいので、最新のリポジトリに集中できます。
リアクティブ-ipc: https://github.com/reactive-ipc/reactive-ipc-jvm
反応ストリームネット: https://github.com/reactive-streams/reactive-streams-net-jvm
リアクティブソケット: https://github.com/ReactiveSocket/reactivesocket-java.git
java - リアクター lmax スレッド ダンプ
以下の (部分的な) スタック トレースを理解しようとしています。春のプロジェクトリアクター2.0.4を使用。
タスクを作成し、ワーカー スレッドにタスクを割り当てるタスク スケジューラ スレッドを取得しました。この時点で、アプリケーションはハングします (ワーカー スレッドは何もログに記録しない、別の時間に取得されたスレッドダンプは常に同じなど)。
次の行に基づいて、リング バッファがいっぱいであると言えますか。at reactor.jarjar.com.lmax.disruptor.MultiProducerSequencer.next(MultiProducerSequencer.java:136)
リング バッファがいっぱいの場合、ワーカー スレッドがこれらのタスクのいずれも取得しないのはなぜですか? リングバッファの状態が壊れることはありますか?
java - 非ブロッキング非同期マイクロサービスを使用するようにレガシー SOA システムをリファクタリングする
プロジェクトリアクターリファクタリングレガシーSOAシステムを使用してノンブロッキング非同期マイクロサービスを使用できるように、RxJavaに頭を悩ませようとしているところです。
現時点では、実現可能性調査を行っており、スプーンのようなものを使用してレガシー サービス コードを変換することを検討しています (ただし、この質問とは関係ありません)。
この同期サービス コードを置き換えるために、reactor-bus Request/Reply 構文を使用する方法を知りたいです。または、まったく異なる原子炉構造を使用する必要がある場合でも。
これは従来の soa サービスの例です。これは考案されているため、完全には意味をなさない可能性がありますが、基本的に各サービスは最後の結果に依存しています。
基本的に、これはdispatcher.runSyncを使用して他のサービスを呼び出すサービスです...リアクターまたは別のライブラリを使用して、このタイプの構文を非同期のノンブロッキングコードに変換する方法についての研究の出発点を探しています.
この時点で、私はコールバック/ある種の Promise 型構造の非常に漠然とした用語で考えています。
別のサービスへの最初の呼び出しのように
これが代わりに serviceResults マップを含む Promise オブジェクトを返した場合、残りのメソッドは Promise onComplete ブロックに移動でき、結果は、このサービス メソッドを構成する onComplete コード ブロックの深くネストされた束になります。
または、多くのレベルで意味をなさない次のようなリアクターバスのドキュメントを見ると、リアクターについて、なぜそれが意味をなさないのか、またはその理由を理解するために次に何を学ぶべきかを知るのに十分な知識がありません。意味がありません
リアクティブ プログラミング パラダイムの研究を開始するのはかなり奇妙な場所だと思います。しかし、この同期サービス コードを置き換えることが私の究極の目標であり、少なくとも構文を理解していれば、そこからさかのぼって作業できます。