--with-c-glib が configure オプションに必要。 他のは勝手に認識してくれるのに、なんでこれだけ... Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationWhat you can do with signing up
MacOSX上へのthrift 0.9.1のインストールに難儀したのでメモしておきます。 PHP用のファイルが足りないことが原因だったので、PHPを使わない人は除外すれば起きないかと思います。 CPPでもエラーが起きましたが僕は使わないので見なかったことにします。 なお、ThriftはHomebrewにも上がっていました。brewで試して上手く行けばおめでとうございます。 さて、Thriftのソースはここからダウンロードできます。 wget https://dist.apache.org/repos/dist/release/thrift/0.9.1/thrift-0.9.1.tar.gz tar zxf thrift-0.9.1.tar.gz cd thrift-0.9.1 ./configure make && make install 本来ならこれでインストールできるはずです。 しか
:inlined :server :autoload :oop :rest このなかでも自分が使った「inlined」と「oop」についてメモ。 使用したバージョンはApache Thrift v0.9.3。 :inlined Thriftライブラリに依存しないファイルを生成してくれる。 このオプションを使うと、gen-phpiフォルダが作られてそのなかに生成されたファイルが入れられる。(このオプションのない場合は、gen-phpフォルダが作られる。) このオプションを使って生成すると、クライアントの呼び出し方が変わるので注意が必要。 $socket = new TSocket(); $transport = new TBufferedTransport($socket, 1024, 1024); $protocol = TBinaryProtocol($transport); $clie
1. ElixirからもThriftをさわりたい Elixirから、thriftを利用してデータのやり取りしたいなー、と見ていましたが、erlangだとあるけど、elixirだと現在は利用できないようです。 サポートされるのを待ちつつも以下のようなpinterest製のライブラリを利用してみます。 https://github.com/pinterest/riffed 2. Riffedの特徴 以下のような特徴を持っているみたいです。 thriftコードから、erlangのコードを自動生成するMixタスク[mix compile.thrift]を提供 Riffed.Structを利用して、thriftで定義、erlangで生成した構造体にElixirからアクセスできる機能を提供 Riffed.Server, Riffed.Clientを提供することで、生成したコードを利用したデータ通信の簡
Thriftがpython3に対応してなくね?と思ったので調べてみました。 https://issues.apache.org/jira/browse/THRIFT-1857 あれ? Issueは fixed, closed になっているがこれは…。 よくて見てみるとver 0.10.0では対応していますが、最新版のリリースが現状(2016/11/23現在)では0.9.3なので、python3にコンパイルできないと。 最新版をチェックアウトするしかなさそうですね…。 チェックアウト git clone https://github.com/apache/thrift.git git branch -a //存在するbranchの確認 git checkout -b 0.10.0 remotes/origin/0.10.0
TL;DR リクエスト-レスポンスの間で、一貫した時刻を取得できると便利 コントローラ関数の1行目で val now = OffsetDateTime.now して doSomething(now, ...) で引数引き回しは嫌だ RequestLocalTime.current.requestedAt で、どこでもリクエスト開始時点の時刻を取得できる仕組みを作った 動機: リクエスト-レスポンスの間で一貫した時刻がほしい 多数のリクエストを受け付けるアプリケーションの場合、複数リクエストから吐かれるログがごちゃ混ぜな順番になってしまうことがあります。 @Singleton class VerboseServiceController @Inject() () extends Controller with idl.VerboseService.BaseServiceIface with
#!/usr/bin/python import sys sys.path.append('./gen-py') from thrift.transport import TSocket from thrift.transport import TTransport from thrift.protocol import TBinaryProtocol from thrift.server import TServer import demoserver.MyMath class MathImpl( demoserver.MyMath.Iface ): def add( self, op1, op2 ): return op1 + op2 def mul( self, op1, op2 ): return op1 * op2 def max( self, op1, op2 ): retur
動機 とある業務で使っている MessagePack-RPC に代わる RPC を探している RPC framework でグーグル先生に聞いたら gRPC と Thrift が上位に表示された gRPC は別の機会で別途比較する そもそも gRPC で使われている Protocol Buffers の 3.0 が Beta 版なので色々環境構築が大変なのが本音 業務で使うのに Beta ってのはちょっと抵抗があるのでモチベーション低下 とは言えど Go は比較的楽だったので頑張った Java も頑張ったが非常に大変だった Ruby はこの問題があって Gem を入れられない 概要 クライアントは Java で、サーバは以下の言語でそれぞれ開発 Java Ruby Go テストは巨大データ送信を10回繰り返した際の平均を取る 巨大データは50000件のハッシュ 結果(単位は秒) 考察 Ja
こんにちは、 今回は個人的に注目しているfinagleとthriftを使って簡単なmicro-servicesの作成を行うチュートリアルを紹介します。 finagleについてはseratchさんの翻訳、Scalaのmicro services事例はokapiesさんのエントリが詳しいと思います。 題材 日本語も検索できる全文検索サービスを作ります。POSTでデータを入れて、GETでヒットしたドキュメントを表示するといった簡単な仕様です。 twitterのscalaチュートリアルにsearchbird というfinagleとthriftを使って検索エンジンを作るチュートリアルがありました。 searchbirdは更新されておらず動かない+古いということでもとに紹介したいと思います。 また、micro-servicesっぽい構成にするために無理矢理ですが、3つのサーバに分けました。 キャッシュ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く