2016-12-23 18 views
0

私はWebソケット用のSpring起動アプリケーションを持っています。私はStomp Webソケットを使用していません。 マイクロサービスの複数のインスタンスにわたってWebソケットセッションを共有できる方法はありますか。Spring Microサービス間でWebsocketセッションを共有

Redisまたはcassandraにwebsocketセッションを保存する方法はありますか?

私のマイクロサービスのインスタンスが複数実行されています。これはkafkaキューをリスンしています。メッセージが受信されると、Webソケットセッションを使用してクライアントに送信する必要があります。セッションをMAPとしてマイクロサービスに保存します。私の問題は、私のマイクロサービスのいずれかがメッセージを受信して​​いることです。セッションがそのマイクロサービスで利用できない場合、メッセージはクライアントに送信されません。

REDISまたはCassandraにwebsocket sesssionを保存できる場合は、セッションを照会してクライアントに送信できます。

要件に応じてStompウェブソケットを使用することはできません。通常のウェブソケットでなければなりません。

答えて

1

できません。カフカメッセージを受け取ったものから、マイクロサービスに何らかのルーティングを実装する必要があります。 これを行う簡単な方法の1つは、特定のクライアントのサービスインスタンスのIPを任意のデータストア(mongo、redisなど)に格納することです。こうすることで、カフカからのメッセージを受け取ったときに、それが誰であるかを知っていれば、どのマシンにそのクライアント用のwebsocketセッションがあるか調べます。次に、処理しているセッションのメッセージをリレーするために実装したIP上で、httpエンドポイントを呼び出します。

関連する問題