4/28に開催されたLINEのエンジニアチームの様々な経験を、未解決の課題も含めて共有する技術カンファレンス、
に参加してきたのでその時のまとめ。
メッセージングパイプラインについてのお話です。
ムズイッス…
他のセッションは以下からどうぞ
4/28に開催されたLINEのエンジニアチームの様々な経験を、未解決の課題も含めて共有する技術カンファレンス、LINE DEVELOPER DAY_2015 Tokyoに参加してきたのでその時のまとめ。基調講演回です。 他のセッションは以下からどうぞLINE DEVELOPER_DAY 2015の参加レポート@基調講演 #linedevday【参加レポ #linedevday 】LINEのiOS対応、新しい技術チャレンジ 〜LINEの Apple Watch アプリ開発とSwift導入による開発チームの変化〜@LINE DEVELOPER_DAY 2015【参加レポ】グローバルなネットワーク環境と複数OSに対応するためのLINE Ga... LINE DEVELOPER_DAY 2015の参加レポート@基調講演 #linedevday - もぐめぽろぐ |
4/28に開催されたLINEのエンジニアチームの様々な経験を、未解決の課題も含めて共有する技術カンファレンス、LINE DEVELOPER DAY_2015 Tokyoに参加してきたのでその時のまとめ。 AppleWatch対応とswift対応回です。 他のセッションは以下からどうぞLINE DEVELOPER_DAY 2015の参加レポート@基調講演 #linedevday【参加レポ #linedevday 】LINEのiOS対応、新しい技術チャレンジ 〜LINEの Apple Watch アプリ開発とSwift導入による開発チームの変化〜@LINE DEVELOPER_DAY 2015【参加レポ】グローバルなネットワーク環境と複数OS... 【参加レポ #linedevday 】LINEのiOS対応、新しい技術チャレンジ 〜LINEの Apple W... - もぐめぽろぐ |
4/28に開催されたLINEのエンジニアチームの様々な経験を、未解決の課題も含めて共有する技術カンファレンス、LINE DEVELOPER DAY_2015 Tokyoに参加してきたのでその時のまとめ。 LINE GAME Client Platformに関するレポートです。 他のセッションは以下からどうぞLINE DEVELOPER_DAY 2015の参加レポート@基調講演 #linedevday【参加レポ #linedevday 】LINEのiOS対応、新しい技術チャレンジ 〜LINEの Apple Watch アプリ開発とSwift導入による開発チームの変化〜@LINE DEVELOPER_DAY 2015【参加レポ】グローバルなネットワー... 【参加レポ】グローバルなネットワーク環境と複数OSに対応するためのLINE Game Cli... - もぐめぽろぐ |
4/28に開催されたLINEのエンジニアチームの様々な経験を、未解決の課題も含めて共有する技術カンファレンス、LINE DEVELOPER DAY_2015 Tokyoに参加してきたのでその時のまとめ。 スタンプショップの裏側についてのお話です。 他のセッションは以下からどうぞLINE DEVELOPER_DAY 2015の参加レポート@基調講演 #linedevday【参加レポ #linedevday 】LINEのiOS対応、新しい技術チャレンジ 〜LINEの Apple Watch アプリ開発とSwift導入による開発チームの変化〜@LINE DEVELOPER_DAY 2015【参加レポ】グローバルなネットワーク環... 【参加レポ】巨大化するスタンプ、きせかえ販売システム その危機と復活の記録 【L... - もぐめぽろぐ |
4/28に開催されたLINEのエンジニアチームの様々な経験を、未解決の課題も含めて共有する技術カンファレンス、LINE DEVELOPER DAY_2015 Tokyoに参加してきたのでその時のまとめ。 LINE Creators Marketの開発話です。 他のセッションは以下からどうぞLINE DEVELOPER_DAY 2015の参加レポート@基調講演 #linedevday【参加レポ #linedevday 】LINEのiOS対応、新しい技術チャレンジ 〜LINEの Apple Watch アプリ開発とSwift導入による開発チームの変化〜@LINE DEVELOPER_DAY 2015【参加レポ】グローバルなネットワーク環境と複数O... 【参加レポ】Webサービスの国際化にあたりLINE Creators Market開発がどのように行... - もぐめぽろぐ |
4/28に開催されたLINEのエンジニアチームの様々な経験を、未解決の課題も含めて共有する技術カンファレンス、LINE DEVELOPER DAY_2015 Tokyoに参加してきたのでその時のまとめ。 メッセージングパイプラインについてのお話です。ムズイッス... 他のセッションは以下からどうぞLINE DEVELOPER_DAY 2015の参加レポート@基調講演 #linedevday【参加レポ #linedevday 】LINEのiOS対応、新しい技術チャレンジ 〜LINEの Apple Watch アプリ開発とSwift導入による開発チームの変化〜@LINE DEVELOPER_DAY 2015【参加レポ】グローバル... 【参加レポ】Akka ActorとAMQPでLINEのメッセージングパイプラインをリプレースし... - もぐめぽろぐ |
4/28に開催されたLINEのエンジニアチームの様々な経験を、未解決の課題も含めて共有する技術カンファレンス、LINE DEVELOPER DAY_2015 Tokyoに参加してきたのでその時のまとめ。 最後のセッションで出てきた質問に登壇者が答えてくれるセッションです。ちなみにこちらのセッションについてはWebで公開されないらしいです。 他のセッションは以下からどうぞLINE DEVELOPER_DAY 2015の参加レポート@基調講演 #linedevday【参加レポ #linedevday 】LINEのiOS対応、新しい技術チャレンジ 〜LINEの Apple Watch アプリ開発とSwift... 【参加レポ】各セッションで出た質問に答える座談会【LINE DEVELOPER DAY_2015】 #... - もぐめぽろぐ |
Yuichi Ono様
LINEのメッセージングは人と人とやるのと、人とシステムとでやるものの2種類ある
公開型のアカウントから一般の人に送るときは20億メッセージおくったりする
一斉送信を解決するためにつくったのがメッセージングパイプライン
AMQPのACKはコンシューマに応じて必ずメッセージを処理するという仕組み
ACKが来なかった場合は別のコンシューマにメッセージを送信する
AMQP ACKを活用して1Q1Cのフェイルオーバーを編み出した!!
コーディネーションキューにコンシューマーの名前を書いたキューをいれておく
肝は死ぬまでackを返さないようにすることで1Q1Cを実現できた
結果として、RabbitMQのみでフェイルオーバー可能に。またスケーラビリティも上がった
前はmicro batchという少しずつ処理するようにしていたが、stream batch処理するようにした
Pusherの中身
一旦中継用のアダプターを書いて、次に1つのAMQPアクターにすべて集約している
AMQPのライブラリ自体に再接続の機能があるが、複数のコネクション管理だと、逆に実装しづらくなるので、集約することで簡潔にかけた
AMQP ActorはFlow Control Actorにわたしている
処理がおわったらAckをきた順序に返していく
Metrics Actorのなかでサンプリングなどをして外部に送信を行ったりしている
7秒単位に、アクター別、サーバー別にメトリックスをみれるようになったりしている
結果として
複数のアカウントに一斉に送信することがある -> ラウンドロビンアルゴリズムを採用した
メッセージのフローを一旦ためて、カーソルを順番に操作して順番にメッセージを送信している
結果として
マルチスレッドプログラミングについての知識が恐ろしく乏しいのを感じたため、少し勉強したほうがいいのではという危機を感じた。
もしマルチスレッドプログラミングするときはアクターモデルを試してみます!!
こんにちは。virapture…
View Comments
素晴らしいまとめ!
郡山師匠!ありがとうございます!
Your article helped me a lot, is there any more related content? Thanks! https://accounts.binance.com/kz/register-person?ref=V3MG69RO
Can you be more specific about the content of your article? After reading it, I still have some doubts. Hope you can help me.