0

jrubyアプリがある同じjboss上ではない別の「japps」、つまり別のjboss上のJavaプロジェクトと通信する機能を備えた(使用または何でも)Jruby project実行した経験がある人はいますか?Jbosstorquebox

torque-messanging外部(jruby-appのjboss外)アプリと通信できるかどうかはわかりませんが、わかりませんか?

ベストプラクティスは大歓迎です。
前もって感謝します。

PSは、jrubyアプリが受け入れられないソリューションであるjbossに他のアプリを配置します。

4

3 に答える 3

2

Thriftを使用して、それらを介してコミュニケーションを構築することをお勧めします。

Thriftには、必要な言語(JavaとJRuby)の両方に対応するジェネレーターがあり、良好で高速な通信を提供します。

更新:ThriftはFacebookで開発されたRPC(リモートプロシージャコール)フレームワークです。詳細については、 Wikiで読むことができます。

あなたの時間を節約するために一言で言えば、それは何であり、それをどのように使用するか:

データ構造とサービスインターフェイスを.thriftfile(files)で記述します。そして、このファイルから、1つまたはいくつかの言語(必要なもの)のすべての必要なソースファイル(すべてシリアル化が必要)を生成します。数行でサーバーとクライアントを簡単に作成できるよりも

クライアント内で使用すると、単純なクラスを使用しているように見えます。

Thriftを使用すると、使用したプロトコルとトランスポートを使用できます。ほとんどの場合、ブロックされたトランスポートまたはブロックされていないトランスポートを介してバイナリまたはコンパクトプロトコルを使用します。したがって、ネットワーク通信は、高速シリアル化により、軽量で高速になります。

SOAP(XML on HTTPに基づく)パッケージは、数倍大きく、バイナリデータの送信には不適切ですが、これだけではありません。また、XMLシリアル化は非常に遅いです。したがって、SOAPを使用すると、大きなオーバーヘッドが発生します。また、soapを使用すると、サーバー(小さなネットワーク層)を呼び出すためのlibを作成する(またはサードパーティを使用する)必要があります。

SMTPおよび基本的にJMSは、リアルタイムおよび質問と回答の通信には不適切です。つまり、メッセージをキューに入れるだけで、誰かがこのメッセージを送信して処理する必要がある場合は、JMSまたはその他のMQサービスを使用できます(使用する必要があります)(Thriftはこれを実行できますが、この問題にはMQアーキテクチャの方が適しています) )。ただし、リアルタイムのクエリ応答呼び出しが必要な場合は、RPCを使用する必要があります。プロトコルとしては、HTTP(REST、SOAP)、binary(Thrift、ProtoBuf、JDBCなど)などがあります。Thrift(およびProtoBuf)は、クライアントとサーバーを生成するためのフレームワークを提供するため、低レベルの問題からユーザーを保護します。

PS:私は過去にいくつかの例を作成しましたhttps://github.com/imysak/using-thrift(ThriftJavaサーバー+Javaクライアントまたはnode.jsクライアントを介した通信)、多分それは誰かのために役立つでしょう。しかし、もっと単純でより良い例を見つけることができます。

于 2013-02-13T14:49:55.940 に答える
1

Torquebox は JMS をサポートしています。指定した gem をtorquebox-messaging使用すると、JRuby アプリが実行されているローカル JBoss AS サーバー/クラスターで HornetQ メッセージを発行および処理できます。現在、リモート サーバーへの接続はサポートされていないと思います。

JRuby アプリでこの機能を使用すると、別のサーバーで Java アプリを設定して、JRuby アプリが実行されている JBoss AS で実行されている HornetQ と通信できます。

または、いつでも独自の通信プロトコルを実装したり、別の Java ライブラリを使用したりすることもできます。JRuby から実行したいすべての Java にアクセスできます。

于 2013-02-13T15:14:31.627 に答える
1

そのためにWebサービスまたはJMSを使用できます

于 2013-02-13T14:58:43.993 に答える