以下の内容はhttps://memo.sugyan.com/entry/20111214/1323862805より取得しました。
東京Node学園 3時限目 : ATND
- 「DOMAINS & ISOLATES」 @koichikさん
- 2011/07 - コアチーム入りしてます
- 安定版の歴史、今後の予定
- v0.8 2012/01 リリース予定
- V8のリリースサイクルに合わせて頻繁なリリースを目指す
- 新機能の目玉がDomain, Isolates
- 現在絶賛開発中です
- エラーハンドリングの話
- そこでDomains
- 関連するイベントをまとめる
- net, dns, fs, timers
- "domains.createDomain(arg, cb)"
- ドメインのエラー処理
- ドメインに関連付けられたものを処理
- "myDomain.on('error', function (err) { ... })"
- 各種API
- Domainsまとめ
- Isolates
- いまどきのV8
- V8のIsolateを利用してマルチスレッド対応
- API
- child_process -> exec 改名
- fork時に、Isolatesが有効だと子プロセスではなく別スレッドで
- なぜ今さらマルチスレッド?
- 推測
- クラウド企業に支えられるNode
- PaaSでの利用形態
- 1. シングルコアのVMで1プロセス
- 2. 複数コアのVM
- 3. 複数コアの複数スレッド
- PaaS提供側は少ないリソースで機能提供できるメリットがあるのでは?
- Isolatesまとめ
- V8 Isolateでマルチスレッド利用可能に
- 課題
- 質疑
- Q. 使い分け方法は?
- A. 障害極小化も考えるとリソースに懸念なければマルチプロセスで、スレッドはそんなに使わないほうが良いのでは
- 「Cloud Foundryで transports{['websocket']} 動かしてみた」 こまつけんさく(@komasshu)さん
- http://www.slideshare.net/KensakuKOMATSU/111214-node-conf
- HTML5, WebSocket
- Cloud Foundryとは
- Architecture of Cloud Foundry
- 様々なモジュールにより構成
- モジュール間はメッセージバス
- WebSocketとは
- まぁご存知ですよね
- Web上で動くVPNと考えています
- FW, Proxyを越えてくれる
- CloudFoundryではWebSocketが動かない
- nginx, routerが前にいる
- nginx
- router
- ハンドシェイクは通るがその後のFrameが通らない、という挙動
- そのあたりをカットするようにしてやれば良い
- 実際にこれで動かせました
- さらにいろいろやりたい が spec足りない
- Githubに上げてます!
- BDD(Benkyo-kai Driven Development)!
- 質疑
- 「『SlideStream』の紹介とリアルタイムWebのTips」 @Jxck_さん
- http://jxck.node-ninja.com/slides/nodeacademy3.html
- Chrome or Firefoxで見てね
- SlideStream
- https://github.com/Jxck/SlideStream
- based on deck.js
- realtime coding (codestream)
- realtime executing (shellstream)
- Paging
- socket.ioのAuthentication, Authorizationつかって話者のみ動かす
- adminとしてログインした人だけがbroadcast
- 認証大事!
- なんでもかんでもbroadcastしてしまわないように注意
- event名を知ってれば誰でも動かせる、などの形にしないように
- Steal the TTY
- ptyの入力、出力を扱う
- readlineモジュール
- REPLで使ってる
- 入力を受けspawnして結果出力しつつ送信
- How to display Editor
- auto-save-buffers 0.1秒ごとに自動保存
- watchFileもMacだと遅いので500msごとに監視
- 大事なのは「リアルタイム*に見えること*」
- diffを送ることについて
- volatileが重要
- 情報落ちの場合のことを考えるくらいなら全部送ってしまえ
- 発覚したbottle neck: ブラウザのメモリ
- イベントでコード更新する毎にhighlight
- もともとは一回だけの表示のためのものだから
- 必要なときだけhighlightするよう手を入れたw
- サーバでhighlightも考えたけど、ここはclientでやるべき、と判断
- IO heavy / CPU Heavy の処理のバランスを考えるのが大事
- 負荷テストの結果
- single process + Redis
- 500 - 1000 connections
- メモリ食い尽くさずに安定してイケた!
- Streamについて
以上の内容はhttps://memo.sugyan.com/entry/20111214/1323862805より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます
不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14