問題タブ [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.
java - Java で Hive への非同期呼び出しを行うにはどうすればよいですか?
サーバー上で非同期に Hive クエリを実行したいと考えています。Hive クエリは完了するまでに時間がかかる可能性が高いため、呼び出しをブロックしないことをお勧めします。現在、Thirft を使用してブロッキング呼び出し (client.execute() をブロック) を行っていますが、非ブロッキング呼び出しを行う方法の例を見たことがありません。ブロッキングコードは次のとおりです。
上記のコードには、簡潔にするために try/catch ブロックがありません。
非同期呼び出しを行う方法を知っている人はいますか? Hive/Thrift はそれをサポートできますか? より良い方法はありますか?
ありがとう!
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 ライブラリを実装する (開発時間が増える?)
これを行う最も簡単な方法は何ですか?
erlang - Thrift の Erlang アトムとタプル
対応するThriftタイプはどれですか:
- Erlang のタプル (構造体だと想像できます)
- Erlang アトム (もしあれば?)
Erlang の型と Thrift IDL の型との間の直接マッピングに関するドキュメントはありますか?
python - 統合テスト:テストする前に、 `unittest.setUp`の間にブロッキングサーバーを起動しますか?
Thriftを使用してサービスを作成していますが、期待どおりに動作/応答することを確認するために、いくつかのテストを適用する必要があります。これを達成するための最も堅牢なアプローチは、unittest
モジュールを使用することであるように思われます。
単体テストのメソッド内から直接「テスト」モード(特定の「テスト」ポートで開始、「テスト」データを使用など)でサービスを開始したいのですが、その時点でブロックをsetUp
呼び出して接続を待機しています。serve()
tearDown
テストを実行し、メソッドを使用してサービスをクリーンに停止できるように、サービスを開始するための最良のアプローチは何でしょうか。
cassandra - Cassandra で TimeUUIDType 列を含む行を挿入するにはどうすればよいですか?
Cassandra には、次の列ファミリーがあります。
Thrift によって生成された C++ 生成関数を使用して、次のようにレコードを挿入しようとしています。
ただし、次のエラーが表示されます:「UUID は正確に 16 バイトである必要があります」
次のコマンドで Cassandra CLI を試してみました。
しかし、私はまだ次のエラーが発生します:
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行目
何か案は?
serialization - XStream <-> 代替バイナリ形式 (プロトコル バッファなど)
現在、Web サービスの入力/出力を XML でエンコードするために XStream を使用しています。ただし、複数の言語 (protobuf、Thrift、Hessian など) 用のコード ジェネレーターを使用してバイナリ形式に切り替えることを検討しています。これにより、新しいクライアントのサポートがより簡単になり、ハンド コーディングへの依存度が低くなります (また、バイナリ データを含むメッセージ形式をより適切にサポートするため)。 .
ただし、サーバー上のオブジェクトのほとんどは、XStream がリフレクションと注釈を介してシリアル化を処理する POJO であり、これらのライブラリのほとんどは、POJO 自体を生成すると想定しています。代替ライブラリに接続する方法はいくつか考えられます。
ターゲット形式の XStream マーシャラーを記述します。
代替ライブラリによって生成されたクラスとの間で POJO をマーシャリングするカスタム コードを記述します。
生成されたクラスをサブクラス化して、POJO ロジックを実装します。書き直しが必要な場合があります。(また、テラコッタを使いたいと言いましたか?)
リフレクション (XStream など) とコード生成の両方をサポートする別のライブラリを使用します。
ただし、どのシリアライゼーション ライブラリが上記の手法に最適かはわかりません。
asynchronous - Tornadoはノンブロッキング非同期スタイルでCassandraと通信できますか?
私は非常に多くのクライアント要求を処理しなければならないWebプロジェクトに取り組んでいます。そこで、Cassandraとtornadoの使用を検討しています。Tornadoには、http Non-Blockingリクエストを実行できる組み込みクライアント(tornado.httpclient.AsyncHTTPClient)があるようです。ただし、CassandraはThriftプロトコルを使用します。スリフトを使用して、カサンドラに征服している間、トルネードはブロックされているようです。
誰か経験がありますか?どうしたらいいか提案してください。または、この目的のためのアドオンモジュールはありますか?
ありがとう。
java - Windows での Thrift / Google プロトコル バッファ
Thrift と Google Protocol Buffers を調べて、簡単な RPC コードを実装します。生成された C++ コードが Windows でコンパイルされた場合 (これが必要です)、倹約は完璧です。もちろん、GPB は RPC スタブを作成しますが、実装は行いません。
Thrift Windows を使いやすくする方法はありますか? または、さらに良いことに、生成された C++ protobuf スタブ用に自由に利用できる RPC 実装があります (Java の対応物もいいでしょうが、必須ではありません)。
ありがとう