More Related Content
PDF
PDF
PDF
PPTX
PDF
PDF
PDF
PPT
Shibuya Pm Tt08 Advanced Mogilefs What's hot
PDF
C#次世代非同期処理概観 - Task vs Reactive Extensions PPT
PPTX
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE) PDF
PDF
Tomcat環境をインストールする(debian) PPTX
PDF
PDF
PDF
ありえるえりあ勉強会@五反田~テスト編~ Part3 PDF
Laravelのパッケージのテストに便利なパッケージ PDF
KEY
PDF
PPTX
PDF
PDF
Java/phpからのOracle接続(debian) PDF
PDF
PDF
PDF
Sd Loader Seasar Con2009 White Viewers also liked
PDF
Treasure Dataを支える技術 - MessagePack編 PDF
PDF
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化 PDF
PPTX
PDF
PDF
PDF
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定 PDF
ODP
PPTX
PDF
PPTX
PDF
PPTX
PDF
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用 PPTX
PPTX
PPTX
PPTX
Similar to MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
PDF
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8 PDF
WebSocket+Akka(Remote)+Play 2.1 Java PDF
PDF
Play framework 2.0のおすすめと1.2からのアップグレード KEY
PDF
PDF
PPTX
PDF
関西 Java エンジニアの会 2012年6月度 JavaOne 報告会! PDF
PDF
PDF
JavaOne2015報告またはこれからのJava PDF
Public 20100828 j_ruby_kaigi_10things_jror_with_javaee KEY
関ジャバ JavaOne Tokyo 2012報告会 PPT
PDF
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発 KEY
PDF
PDF
G* Workshop in Fukuoka - Introduction PDF
More from Takashi Someda
PPTX
大企業、未踏ソフトウェア、起業 様々な働き方から学んだ「モノ作り」のエッセンス PPTX
「どうすれば価値を生み出すか」を知るために ヌーラボで行っていること 〜 落ち穂拾い 〜 PPTX
AWS ではじめる Programmable Cloud PPTX
Basic architecuture and operation concept of Backlog and Cacoo PPTX
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013 PPTX
Service Configuration Management for Rapid Growth - demo 10 steps to build pi... PPTX
How we spread out our service globally by utilizing AWS and open source soft... PPTX
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語 PPTX
Service Configuration Management for Rapid Growth PPTX
Nulab's DevOps tool stack based on AWS PPTX
PPTX
JAWS-UG 三都物語 2014 今しか役に立たない EC2入門 2014夏 PDF
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
- 1.
- 2.
自己紹介
染田貴志 (SOMEDA Takashi)
http://d.hatena.ne.jp/tksmd
株式会社ヌーラボ所属
Backlog の開発・インフラ・サポート
Cacoo のインフラ
FxUG 京都スタッフ
JAWS UG 京都支部長
関西 Java エンジニアの会 常連
kanjava vol.8
- 3.
- 4.
- 5.
- 6.
- 7.
Agenda
背景
MessagePack RPC とは
使ってみた / 拡張してみた
まとめ
http://www.flickr.com/photos/rickerbh/449823989/
kanjava vol.8
- 8.
背景
http://www.flickr.com/photos/nicmcphee/2558167768/
- 9.
- 10.
課題
Git リポジトリとアプリサーバは別にしたい
実行速度はなるべく速くしたい
言語非依存でやり取りしたい
kanjava vol.8
- 11.
- 12.
- 13.
- 14.
- 15.
ドラクエX でも!
http://gigazine.net/news/20120824-dragonquest-backstage-cedec2012/
kanjava vol.8
- 16.
非同期 RPC
http://wiki.msgpack.org/display/MSGPACK/Design+of+RPC
kanjava vol.8
- 17.
パイプライン
http://wiki.msgpack.org/display/MSGPACK/Design+of+RPC
kanjava vol.8
- 18.
実装が沢山
http://msgpack.org/
kanjava vol.8
- 19.
使ってみる / 拡張してみた
http://www.flickr.com/photos/83633410@N07/7658268052/in/photostream/
- 20.
- 21.
- 22.
- 23.
実装とインターフェースは違ってok
@Test
public void インターフェースと実装は違っていてもよい() throws Exception
{
EventLoop loop = EventLoop.start();
Server server = new Server(loop);
server.serve(new TestHandler());
server.listen(8969);
Client client = new Client("127.0.0.1", 8969, loop);
TestInterface handler = client.proxy(TestInterface.class);
String actual = handler.method();
assertThat(actual, is("ok"));
}
kanjava vol.8
- 24.
ハンドラの public メソッドには注意
@Test
public void publicメソッドには注意してね() throws Exception {
EventLoop loop = EventLoop.start();
Server server = new Server(loop);
try {
server.serve(new ExecptionHandler());
} catch (MessageTypeException e) {
assertTrue("setDelegate を RPC メソッドとして登録しようとす
る", true);
} finally {
server.close();
loop.shutdown();
}
}
kanjava vol.8
- 25.
拡張してみた
画像ファイルなど
byte[] をそのまま送信すると
色々大変
kanjava vol.8
- 26.
- 27.
- 28.
Chunk 書き込み
final InputStream is = handler.getStream();
channel.write(CustomMessage.startMessage(msgid, key));
ChannelFuture writeFuture = channel.write(new ChunkedStream(is));
writeFuture.addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future)
throws Exception {
future.getChannel().write(CustomMessage.endMessage(msgid,
key));
is.close();
}
});
kanjava vol.8
- 29.
まとめ
http://www.flickr.com/photos/nauright/2662160957/
- 30.
非同期処理は難しい?!
非同期処理を意識する所はほとんどない
手軽に複数サーバでの
分散処理が記述できる
kanjava vol.8
- 31.
今後の課題など
他言語からのアクセス
パフォーマンス的なところ
冗長化的なところ
kanjava vol.8
- 32.
気になる
https://twitter.com/frsyuki/status/239951922478596096
kanjava vol.8
- 33.
- 34.
Thanks!!
ありがとうございました
ご質問あればどうぞ!
kanjava vol.8