Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
TV連動サービスのリアルタイム通知を支える技術
Search
Tsuyoshi Torii
February 26, 2023
Technology
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TV連動サービスのリアルタイム通知を支える技術
Tsuyoshi Torii
February 26, 2023
More Decks by Tsuyoshi Torii
See All by Tsuyoshi Torii
Claude Cowork全社展開のために、MCPゲートウェイを自作した話
toritori0318
2
120
作られては消えていく泡のように儚いクラスタの運用話
toritori0318
0
150
Shinken Monitoringについて真剣に調べてみた結果
toritori0318
0
400
Chef SoloからItamaeに完全移行した話+
toritori0318
0
150
Docker3兄弟
toritori0318
2
7.3k
TV視聴参加型システムを支えるSocket.IOクラスタの裏側
toritori0318
12
3.9k
Other Decks in Technology
See All in Technology
20261031_IoTLT_vol140_kitazaki_v1.pdf
kitazaki
0
130
AI AgentによるEmbedded SREの取り組み
tgidgd
1
300
LLMの知識とAIエージェント
happysamurai294
0
140
Deep Data Security 機能解説
oracle4engineer
PRO
3
980
Jev の中身は50行で再現できる。でも本物との差はどこにあるのか
hisuzuya
0
250
【Oracle AI SPOTLIGHT ウェビナー】事例から見る!なぜOCIが選ばれたのか ― AI時代のクラウド戦略を紐解く ―
oracle4engineer
PRO
1
140
「作れる」と「リリースできる」の間にあったもの── PdMを外して見えた、PdMがやるべき仕事/Buildable ≠ Shippable: What Removing the PM Taught Me About the PM’s Job
yappli_developers
0
400
Obsidian Vault Architectures
x5gtrn
PRO
0
220
AI秘書と毎日働くのはもう当たり前。開発以外の業務に足りない機能をどう埋める?
minorun365
PRO
4
2k
クラウドエージェントの先駆け Devin。今も最先端を走る、他との違い
kinopeee
1
520
ひとりで始めた AI駆動開発、チームに広げて何が変わったのか
kenichiodo
1
170
re:Invent の去年のスケジュールを公開します!
miu_crescent
PRO
0
130
Featured
See All Featured
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
590
RailsConf 2023
tenderlove
30
1.6k
エンジニアに許された特別な時間の終わり
watany
109
250k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.4k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
780
Between Models and Reality
mayunak
4
530
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
570
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
30 Presentation Tips
portentint
PRO
1
450
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.6k
Transcript
TV連動サービスの リアルタイム通知を支える技術 2014/01/14 テレビ連動サーバ勉強会vol1 Tsuyoshi Torii (@toritori0318) Bascule Inc.
自己紹介 • 鳥居 剛司 @toritori0318 • 株式会社バスキュール • TV連動プラットフォームサーバ開発/運用 •
Lua / Python / Golang / Node.js / Perl / Ruby • 二児の父
アジェンダ • MIESについて • Sonicshooter基本機能/事例紹介 • Sonicshooter詳細構成/特徴 • お試し構成デモ •
まとめ
アジェンダ • MIESについて • Sonicshooter基本機能/事例紹介 • Sonicshooter詳細構成/特徴 • お試し構成デモ •
まとめ
MIES
MIES
アジェンダ • MIESのご紹介 • Sonicshooter基本機能/事例紹介 • Sonicshooter詳細構成/特徴 • お試し構成デモ •
まとめ
SonicShooter機能 • ユーザ管理/認証 • Push機能 • フレンド配信 • ブロードキャスト配信 •
Sync機能(New!) • P2Pっぽく、特定デバイスとの同期をリアルタイムに行う • Pull機能 • フレンドタイムライン • パブリックタイムライン • ブロードキャストデータ
SonicShooter機能 • ユーザ管理/認証 • Push機能 • フレンド配信 • ブロードキャスト配信 •
Sync機能(New!) • P2Pっぽく、特定デバイスとの同期をリアルタイムに行う • Pull機能 • フレンドタイムライン • パブリックタイムライン • ブロードキャストデータ
すごいTwitter っぽい
番組事例
事例: BloodyTube
紹介ムービー
プロジェクト構成概要
アジェンダ • MIESについて • Sonicshooter基本機能/事例紹介 • Sonicshooter詳細構成/特徴 • お試し構成デモ •
まとめ
Elastic Socket.ioクラスタ
S2構成
S2構成
特徴 • 同時数百万接続 • HTTPS対応 • 特定ユーザ(グループ)に対して通知 • 動的にノード追加可能 •
Weighted load balancing • 複数インスタンスタイプ対応
特定ユーザへ通知
動的にノード追加
ノード取得
Weighted load balancing
複数インスタンスタイプ対応
その他工夫しているところ • クライアントのフォールバックの仕組み • ハートビートが切れたら生きているノードを探しに行く • 別ノードへ再接続 • ソケットが切れている最中は、ポーリング間隔を短くする
アジェンダ • MIESについて • Sonicshooter基本機能/事例紹介 • Sonicshooter詳細構成/特徴 • お試し構成デモ •
まとめ
Docker+socket.ioデモ • Socket.ioも気軽にスケール出来たらいいよね • Socket.ioをDockerコンテナ化して、ポコポコ増やしてみる • スケールアウト/スケールインしたときに問題なく接続/再接続さ れる仕組み 昨日、さくっとプロトタイプ作ってみた
Docker+socket.ioデモ • Socket.io ロードバランサ問題 • ハンドシェイク > アップグレード の2回アクセス問題 •
公式はIP Hashで実現しているが、Sticky Sessionでやりたい • ※もっというと、コネクション数見ながら自前で制御したい • Openresty + Luaでコード書いてみた • Nginxのupstream更新はconsul-template + Registrator • Consul: クラスタされたサービス検出と設定のためのソリューション • consul-template: Consulイベントと連動してテンプレートを更新 • Registrator: Dockerコンテナ情報をconsul/etcdなどに適用 • 全体へのbroadcastはsocketio-redis adapter を使用
補足:sio-clientのsticky session
補足:Lua – sioノード決定コード
デモ構成
デモムービー
アジェンダ • MIESについて • Sonicshooter基本機能/事例紹介 • Sonicshooter詳細構成/特徴 • お試し構成デモ •
まとめ
まとめ • TV連動のリアルタイム通知を行うサービス/実装 /実例の紹介 • バージョンアップに向けてのデモンストレーション • まだまだ改善したいところたくさんある
ポエム • TV連動企画、人事ではない • 基本的には同じような企画が多いし、知見共有出来るところはたく さんあるはず • もっとこういう機会をふやしてこの業界全体の底上げしていきたい • もし次回があるなら聞きたい〜
• サーバ運用 • チート対策 • 集計 • 対談
宣伝その1
エンジニアサポート CROSS 2015 に登壇します! はやぶさ2開発者に聞く ~一度きりのテスト対策~
宣伝その2
None
ご清聴ありがとうございました