web-dev-qa-db-ja.com

アクターモデル用のTypesafeAkkaを使用したPolyglotNode.js

JSONの大規模なストリームを操作し、それをApacheHBaseに挿入する必要がある場合があります。パフォーマンスを向上させる必要があるため、システムはMongoを使用してNode.jsで動作します。そのため、ビッグデータを処理するためにHBaseが選択されます。

システムのスケーラビリティを強化するために、他のメッセージングシステムを使用する代わりに、メッセージングにAkkaのアクターモデルを使用することを好みます。これは、Akkaが提供するアクターモデルが、フェイルセーフ、アクター管理、および私の仕事を容易にするのに非常に役立つその他の機能に関する利点を提供してくれるためです。ただし、HBaseからデータを直接注入して消費するのは、JVMレイヤーのままです。

Node.jsアプリもAkkaシステムで動作するようにしたいのですが、おそらくnode-Java。それは良い習慣ですか?そうでない場合、Node.jsがAkkaと通信できるソリューションはありますか?

ps。ここでの私の質問は、AkkaとNode.jsの操作方法に関するものであり、「JVMに非常に高速なJSON操作ライブラリがあるのにNode.jsを使用する理由」については議論していません。これは、システムがすでにベンチマークされており、Node.jsが選択されているためです。 JSON操作を処理します。また、すでに本番段階にあるため、Node.jsから完全なScalaへの完全な移行は今日の優先事項ではありません。

1

私は、JVMがノードよりもJSONを操作するのに適していないという議論を買いません。 JVMは、非常に高速なJSONパーサーでいっぱいで、Jacksonもその1つです。ボーナスとして、ストリーミングjsonも処理します。意見を述べる前にプロジェクトを見てください。あなたの問題はかなり一般的です。アクターを介してソーシャルデータのファイアホースに接続し、エンティティを別のアクターに渡して、目的の種類のJsonを検証または変更してから、別のアクターに渡してデータストアに永続化します。 。必要に応じて、途中でいくつかのキュー(LinkedBlockingQueuesなど)を使用する場合があります。検証および解析アクターでは、JSONを強化または変更するためにJacksonまたはJson4sプロジェクト( https://github.com/json4s/json4s )のみを使用します。残りはかなり標準的です。

1
user586050