問題タブ [thrift]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
4718 参照

java - Java で Hive への非同期呼び出しを行うにはどうすればよいですか?

サーバー上で非同期に Hive クエリを実行したいと考えています。Hive クエリは完了するまでに時間がかかる可能性が高いため、呼び出しをブロックしないことをお勧めします。現在、Thirft を使用してブロッキング呼び出し (client.execute() をブロック) を行っていますが、非ブロッキング呼び出しを行う方法の例を見たことがありません。ブロッキングコードは次のとおりです。

上記のコードには、簡潔にするために try/catch ブロックがありません。

非同期呼び出しを行う方法を知っている人はいますか? Hive/Thrift はそれをサポートできますか? より良い方法はありますか?

ありがとう!

0 投票する
1 に答える
196 参照

java - Java Web アプリから Ruby ライブラリを呼び出す

j2ee/spring/hibernate/tomcat Web アプリケーションがすでに実稼働環境で実行されています。Ruby クライアント ライブラリを提供するサードパーティ サービス ( recurly ) との統合を計画しています。彼らはまだ Java クライアント ライブラリを持っていません。彼らのサービスは RESTful で、クライアントは ActiveResource のシン カスタム ラッパーです。これを行うには、いくつかの方法を考えることができます。

a) jruby?

b) 実際の ruby​​ lib を内部的に呼び出す単純な ruby​​ xml rpc デーモンを実行しますか? Javaではxml rpcは簡単だと思います。

c) 倹約?

d) RESTful サービスと通信する Java ライブラリを実装する (開発時間が増える?)

これを行う最も簡単な方法は何ですか?

0 投票する
1 に答える
1561 参照

erlang - Thrift の Erlang アトムとタプル

対応するThriftタイプはどれですか:

  • Erlang のタプル (構造体だと想像できます)
  • Erlang アトム (もしあれば?)

Erlang の型と Thrift IDL の型との間の直接マッピングに関するドキュメントはありますか?

0 投票する
4 に答える
3349 参照

python - Python 用のリサイクル モジュールの設定中にエラーが発生しました

Cassandraに組み込むためにthriftをセットアップしようとしているので、

このメッセージをコマンドラインに出力します

この問題について助けが必要です。MigW32 を既にインストールしています。

ありがとう。

0 投票する
3 に答える
2498 参照

python - 統合テスト:テストする前に、 `unittest.setUp`の間にブロッキングサーバーを起動しますか?

Thriftを使用してサービスを作成していますが、期待どおりに動作/応答することを確認するために、いくつかのテストを適用する必要があります。これを達成するための最も堅牢なアプローチは、unittestモジュールを使用することであるように思われます。

単体テストのメソッド内から直接「テスト」モード(特定の「テスト」ポートで開始、「テスト」データを使用など)でサービスを開始したいのですが、その時点でブロックをsetUp呼び出して接続を待機しています。serve()

tearDownテストを実行し、メソッドを使用してサービスをクリーンに停止できるように、サービスを開始するための最良のアプローチは何でしょうか。

0 投票する
1 に答える
3119 参照

cassandra - Cassandra で TimeUUIDType 列を含む行を挿入するにはどうすればよいですか?

Cassandra には、次の列ファミリーがあります。

Thrift によって生成された C++ 生成関数を使用して、次のようにレコードを挿入しようとしています。

ただし、次のエラーが表示されます:「UUID は正確に 16 バイトである必要があります」

次のコマンドで Cassandra CLI を試してみました。

しかし、私はまだ次のエラーが発生します:

0 投票する
1 に答える
10053 参照

c# - Thrift.Transport.TTransportException:null出力ストリームに書き込めません

私はCassandraとThriftライブラリでいくつかの作業を行っています。これらは非常に初期のライブラリであり、(間違いなく)ある時点で変更されることを私は理解しています。

次のリンクを使用して、Cassandraサーバー(ローカルVirtualBoxのUbuntuサーバーインスタンスで実行している)との間で読み書きするC#コードの設定を支援しています。簡単な読み取り/書き込み機能が機能することを確認しました。

問題が発生しているのは、次のメソッド(Cassandraに付属のthrift.definitionファイルを使用して生成されたもの)を実行することです。

これが私のセットアップコードです:

私の呼び出しコードは次のようになります。

このメソッドの最初の行は、例外を取得しているところです。

そしてここに例外があります:

Thrift.Transport.TTransportException:Thrift.Protocol.TBinaryProtocol.WriteI32(Int32 i32)at Thrift.Protocol.TBinaryProtocolのThrift.Transport.TStreamTransport.Write(Byte [] buf、Int32 off、Int32 len)のnull出力ストリームに書き込めません。 Cassandra.csのApache.Cassandra.Cassandra.Client.send_get_range_slice(String keyspace、ColumnParent column_parent、SlicePredicate predicate、String start_key、String finish_key、Int32 row_count、ConsistencyLevelconsistency_level)のWriteMessageBegin(TMessageメッセージ):Apache.Cassandra.Cassの341行目.Client.get_range_slice(String keyspace、ColumnParent column_parent、SlicePredicate predicate、String start_key、String finish_key、Int32 row_count、ConsistencyLevelconsistency_level)in Cassandra.cs:line 335 at CassandraDemo.Models.Test.GetAllBlogEntries()in Test.cs:line 212 CassandraDemo.Tests.Modelsで。TestTest.csのTestTest.Test_GetAllBlogEntries_Success():42行目

何か案は?

0 投票する
1 に答える
1326 参照

serialization - XStream <-> 代替バイナリ形式 (プロトコル バッファなど)

現在、Web サービスの入力/出力を XML でエンコードするために XStream を使用しています。ただし、複数の言語 (protobuf、Thrift、Hessian など) 用のコード ジェネレーターを使用してバイナリ形式に切り替えることを検討しています。これにより、新しいクライアントのサポートがより簡単になり、ハンド コーディングへの依存度が低くなります (また、バイナリ データを含むメッセージ形式をより適切にサポートするため)。 .

ただし、サーバー上のオブジェクトのほとんどは、XStream がリフレクションと注釈を介してシリアル化を処理する POJO であり、これらのライブラリのほとんどは、POJO 自体を生成すると想定しています。代替ライブラリに接続する方法はいくつか考えられます。

  1. ターゲット形式の XStream マーシャラーを記述します。

  2. 代替ライブラリによって生成されたクラスとの間で POJO をマーシャリングするカスタム コードを記述します。

  3. 生成されたクラスをサブクラス化して、POJO ロジックを実装します。書き直しが必要な場合があります。(また、テラコッタを使いたいと言いましたか?)

  4. リフレクション (XStream など) とコード生成の両方をサポートする別のライブラリを使用します。

ただし、どのシリアライゼーション ライブラリが上記の手法に最適かはわかりません。

0 投票する
1 に答える
2147 参照

asynchronous - Tornadoはノンブロッキング非同期スタイルでCassandraと通信できますか?

私は非常に多くのクライアント要求を処理しなければならないWebプロジェクトに取り組んでいます。そこで、Cassandraとtornadoの使用を検討しています。Tornadoには、http Non-Blockingリクエストを実行できる組み込みクライアント(tornado.httpclient.AsyncHTTPClient)があるようです。ただし、CassandraはThriftプロトコルを使用します。スリフトを使用して、カサンドラに征服している間、トルネードはブロックされているようです。

誰か経験がありますか?どうしたらいいか提案してください。または、この目的のためのアドオンモジュールはありますか?

ありがとう。

0 投票する
3 に答える
1483 参照

java - Windows での Thrift / Google プロトコル バッファ

Thrift と Google Protocol Buffers を調べて、簡単な RPC コードを実装します。生成された C++ コードが Windows でコンパイルされた場合 (これが必要です)、倹約は完璧です。もちろん、GPB は RPC スタブを作成しますが、実装は行いません。

Thrift Windows を使いやすくする方法はありますか? または、さらに良いことに、生成された C++ protobuf スタブ用に自由に利用できる RPC 実装があります (Java の対応物もいいでしょうが、必須ではありません)。

ありがとう