0
春の雲カフカストリームに非同期で書きたいと思います。例えば、春の雲カフカストリームに非同期で書き込み
Class SomeClass{
@StreamLister(Processor.INPUT)
public void receiveEvents(String e){
class ThreadExecutor implements Runnable {
private String message;
public ThreadExecutor(message){
this.message = message;
}
public void run(){
//after processing the string I will publish it
message = message + "done";
writeToStream(message);
}
}
Executors.newCachedThreadPool().execute(new ThreadExecutor(e));
}
@SendTo //not sure how to write it back
public Message<String> writeToStream(String message){
//this is what I want to know
}
}
したがって、上記の例では、 writeToStreamメソッドを呼び出す方法を知りたいので、kafkaに書き戻します。基本的には、ポーリングとは異なり、タスクの完了時にストリームに書きたいと思っています。助けてください。
ありがとうございました。私はこのように解決しました。私は私の質問に答えることができません。私はその質問に答えるためにブロックされています。ストリームリスナーは受信するメッセージごとにスレッドを作成しますか?私の場合は、出力を返すだけでメッセージを受信していました。だから私はそれを非同期的に送るスレッドを作った。 –
あなたの質問に答えたのであれば、なぜ別の回答を追加する必要がありますか?バインダーの '並行性'を増やして複数の同時配送を得ることができます。その数のパーティションが必要です。 kafkaはパーティション間でパーティションを配布します。同じパーティションからのメッセージは、同じスレッドで配信されます。 –