問題タブ [thrift-protocol]
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.
javascript - thrift RPCに依存せずにjsでthriftを使用する
私は現在、Java サーバーと通信するために多くのプログラミング言語 (js を含む) を使用する多くのプラットフォームを必要とするプロジェクトに取り組んでいます。
現在、プロトコルはすべてのプラットフォームでデータをシリアル化するために thrift を使用していますが、各プラットフォームは独自のトランスポート メカニズムを使用してデータをサーバーに送信しています (そこで非シリアル化されます)。
ただし、js では、バイナリ プロトコル (TBinaryProtocol) がないため、これは不可能に思えます。
これは事実ですか、jsは単純にデータをシリアライズできませんか(データをjson-thrift形式にシリアライズしてもかまいません)、他の方法を使用して送信できますか?
ありがとう
java - Cassandra-cli がリモート cassandra サーバーに接続できない
サーバー(serv1)で実行されているcassandraサーバーがあります。cassandra-cli は、serv1 で実行すると接続できます。ただし、他のサーバー (serv2) を介して接続しようとすると、次の例外が発生します。
cassandra.yaml を調べたところ、プロパティ「listen_address」が「localhost」に設定されており、0.0.0.0 の使用は強くお勧めできません。localhost を serv2、serv1 の IP アドレスに変更しようとしましたが、何も機能しませんでした。コメントアウトしても役に立ちませんでした。
0.0.0.0 を使用せずに cassandra サーバーにすべての IP をリッスンさせる方法はありますか
thrift - ThriftIDLでJava組み込み例外を使用する方法
ThriftIDLでIOExceptionなどのJava組み込み例外をスローしたいと思います。
このような:
service B {
void removeLease()throws(1:ioexception e)、
}
ただし、Thriftコンパイラは、ioexceptionが定義されていないことを警告します。
c# - apache thriftで独自の通信プロトコルを使用しますか?
apachethriftのシリアル化部分だけを使用できるかどうか疑問に思いました。
基本的に、カスタム通信プロトコルをすでに作成していて、サーバー(PHP)からクライアント(C#)にthriftオブジェクトを渡したいと考えています。
私の自家製の通信プロトコルは基本的にJSONです。thriftを使用してPHP側でオブジェクトを適切に構築し、それをJSONで送信して、C#アプリがthrift --gencsharpmyfile.thriftによって生成されたクラスを使用してオブジェクトを再構築したかったのです。
これが可能かどうか、またはどこから始めればよいか誰かが知っていますか?どういうわけかTProtocolをオーバーロードしますか?
java - Thrift: シリアライズ + デシリアライズ変更オブジェクト
私は次のような倹約構造体を持っています:
アイデアは、単一の「パイプ」でさまざまなタイプのthriftオブジェクトを渡すことができ、それでも反対側で正しく逆シリアル化できるようにすることです。
ただし、GeneralContainer
オブジェクトをシリアル化してから逆シリアル化すると、data
フィールドの内容が変更されます。私は使用していTBinaryProtocol
ます:
を使用してバイナリフィールドを含むオブジェクトをシリアル化すると、ある種のマーカーが台無しになっていると思いますTBinaryProtocol
。あれは正しいですか?はいの場合、プロトコルのオプションは何ですか? 私の目標は、結果のシリアル化されたバイト配列のサイズを最小限に抑えることです。
ありがとう、アマン
c# - Thrift C# チュートリアルの実行に関する問題
私は Thrift RPC フレームワークの基本を理解する必要があります。この目的のために、電卓のチュートリアル (クライアントとサーバーで構成される) をダウンロードしました。
ボンネットの下で何が起こっているのかを理解するには、これが最善の方法だと思いました。
私は次のことができました
- thrift.dll ファイルを生成する
- dll を作成するために必要な csharp ソース ファイルを生成します - 計算機.thrift.dll
- クライアント用とサーバー用の 2 つのプロジェクトで構成されるプロジェクトを作成します。(クライアント プロジェクトはコンソール アプリであり、サーバーはクラス ライブラリであることに注意してください)
クライアント プロジェクトのメイン メソッドから参照用にいくつかのコードを再現しています。
上記の行を実行しようとすると、システムはエラーを生成します。
エラーは次のとおりです。
ターゲット マシンがアクティブに拒否したため、接続できませんでした 127.0.0.1:9090
頭に浮かぶ明白な解決策の 1 つは、ファイアウォールです。ポート 9090 での接続を許可するためのファイアウォール ルールをいくつか作成しました。しかし、エラーは解決しません。
このエラーの解決に向けて私を導くことができるソケット接続および/または倹約の使用を経験した人はいますか?
前もって感謝します
ロミ
python - Django を使用したノンブロッキング Thrift-Server
Thriftインターフェイス経由で Django Web アプリケーションからのデータにアクセスする必要があります。これを非ブロッキングの方法で行いたいのですが (例: libevent/gevent を使用して...)、実装例 (Python で) はあまりないので、ここで例/ヒントを求めたいと思います。 /体験!
この質問は、他のプロトコルではなく、Thrift の使用に関するものであることに注意してください。この目的には、Django よりも優れたフレームワークが存在する可能性があることを知っていますが、それを使用することも要件です!
python - Thrift Binaryプロトコルのシリアル化が非常に遅いのはなぜですか?
私は倹約の初心者です。私はPythonでthriftサーバーを作成し、Pythonでもクライアントを作成しました。
これが私の倹約の定義です:
これが私のサーバー側です:
クライアント側:
cProfileの結果:
私の場合、TableRatingByReportインスタンスは1400行(list \)の本文を取得し、バイナリコンテンツを生成するのに3秒以上かかりました(関数* process_rating_byreport *、これはthiftによって自動生成されます)。なぜこんなに遅いのかわかりません。
jsonを使用して同じデータをシリアル化すると、200ミリ秒未満しかかかりません。
倹約を操作するために間違った方法を使用したのだろうか?
ありがとう。
python - Thriftサーバーは、単純な操作に対して非常に遅いです
Python (サーバー) と Haskell (クライアント) の間のクロス言語プラットフォームとして、単純な Thrift サーバー ( http://thrift.apache.org/ ) を実行しています。送信する必要がある唯一のデータ構造は double の 3 タプルであるため、サーバー/クライアントの実装も非常に単純です。チュートリアルに従うだけで十分でした。
しかし、それは本当に、本当に遅いです!約 0.1 秒以下の時間が必要な場合、各サーバーの応答で約 0.5 秒の応答時間が得られます。
これをスピードアップする方法について誰かアイデアがありますか? 以下に、私の単純なサーバー実装を示します。
クライアントは、実行してこのサーバーにクエリを実行するだけです
その後
私の知る限り、これはすべてかなり標準的なものです。なんでこんなに遅いの??
ありがとう!
.net - Thrift IDL の生成
C# から Thrift IDL を生成することは可能ですか? そうすることは理にかなっていますか?
REST サービス、.net45、WebAPI、JSON があります。私はそれを Thrift に移行したいと考えています。C# で定義されたコントラクトが既にあるため、必要な IDL を作成するためのショートカットを探しています。