9.3. クラスターの移行
コードベースの移行ストラテジーを決定することが重要です。これは、以下の理由により、Eclipse Vert.x 3.x ノードと Eclipse Vert.x 4 ノードを単一のクラスターに追加できないためです。
- クラスターマネージャーのアップグレード - クラスターマネージャーのメジャーバージョンのアップグレードにより、後方互換性が回避されます。
- サブスクリプションデータの変更点 - Eclipse Vert.x は、クラスターマネージャーに保存されている EventBus サブスクリプションデータの形式を変更しました。
- トランスポートプロトコルの変更点 - Eclipse Vert.x がクラスターのメッセージトランスポートプロトコルのフィールドを変更しました。
単一アプリケーションまたは密接に関連するマイクロサービスに Eclipse Vert.x クラスターがある場合は、コードベースを一度に新規クラスターに移行できます。
ただし、一度にコードベースを移行できない場合は、本セクションの推奨事項を使用して Eclipse Vert.x 3.x コードベースを Eclipse Vert.x 4 に移行します。
9.3.1. クラスターの分割 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションごとに異なるチームが verticle をデプロイしたクラスターがある場合は、Eclipse Vert.x 3.x クラスターを小規模なものに分割することを検討してください。クラスターを分割すると、分離されたコンポーネントはクラスターリング機能を使用して通信できなくなることに注意してください。以下のコンポーネントを使用してクラスターを分割できます。
- EventBus 要求および応答 - HTTP または RESTful Web サービス、gRPC
-
EventBus 送信および公開 - メッセージングシステム、Postgres
LISTENおよびNOTIFY、Redis Pub および Sub - 共有データ - Redis、Infinispan
クラスターの分割後に、各チームの準備ができたら、または必要に応じて Eclipse Vert.x 4 に移行できます。
9.3.2. Eclipse Vert.x EventBus リンクの使用 リンクのコピーリンクがクリップボードにコピーされました!
クラスターを分割できない場合は、Vert.x EventBus リンク を使用してコードベースを段階的に移行します。
Vert.x EventBus Link は、Eclipse Vert.x 3.x クラスター EventBus を Eclipse Vert.x 4 クラスター EventBus に接続するツールです。
共有データ API、つまりマップ、カウンター、およびロックの移行はサポートされません。
このツールは、EventBus インターフェイスを実装する EventBusLink オブジェクトを作成します。EventBusLink のインスタンスは、各クラスターの少なくとも 1 つのノードに作成されます。インスタンスは、アドレスのセットを提供し、その動作はメッセージのパラダイムによって異なります。
- fire および forget ならびに request および reply: メッセージはリモートクラスターに送信されます。
- publish: メッセージは、このクラスターとリモートクラスターの両方に送信されます。
Eclipse Vert.x EventBus Link リンクは、WebSocket サーバーを作成してメッセージを受け取り、WebSocket クライアントを使用してメッセージを送信します。
詳細は、getting started および using を参照してください。