排隊應用開發
- 3. 講者簡介
• 現職
– 聖藍科技技術長
• 興趣
– 網路應用系統開發
• 譯作
– Thinking in Java 4th Edition, 正體中文版
– Thinking in Java 2nd Edition, 正體中文版
– Essential C++, 正體中文版
• 專欄
– iTHome 電腦報程式人專欄
• 連絡方式
– qing at gmail.com
– qing_wang at twitter
- 8. In-Process Queue
• Queue 和 Queue 的客戶端程式位在同一個
行程中
• 客戶端程式毋需透過任何通訊協定或IPC的
方式來對Queue做操作
• 儲存於Queue中的資料,通常不需要做
serialization和deserialization
• 像Java collection API中的Queue族系都是屬
於In-Process 的 Queue
- 10. Network-based Queue
• Queue 和 Queue 的客戶端程式不位在同一
個行程中
• 客戶端程式需透過特定的通訊協定或IPC的
方式來對Queue做操作
• 儲存於Queue中的資料,需要做serialization
和deserialization
- 25. Job Queue
• 在軟體系統中,所謂的 Job Queue (工作佇
列)是一個由工作排程器(Job Scheduler)
所維護的資料結構,其中內含待執行的工
作
*http://zeroproductionincidents.wordpress.com/category/web-architecture/process-model/page/3/
- 26. Message Queue
• 所謂的Message Queue(訊息佇列)是一種
用於以下用途的軟體元件
– 跨行程通訊
– 同行程中跨執行緒的通訊
• Message Queue 中所儲存的就是用來通訊的
訊息內容
• Message Queue 的通訊本質是非同步,所以
訊息的發送者和接收者毋需在同時間連線
方能進行互動
- 28. Queue 的本質
• 非同步
– Producer/Consumer 或 Sender/Receiver 不需要
同步互動
• 緩衝
– 提供一個緩衝空間來暫存
• 標準化的溝通界面
- 31. Event Log 的收集及分析
• 有一些系統,有大量的客戶端需要向系統
回報數量龐大的log資訊
• 例-:行車記錄系統
– 不斷的向系統回報車速GPS座標甚至是即時上
傳車上攝影機所拍下的照片
• 例二:廣告使用者行為追蹤系統
– 收集使用者在頁面上的行為,以便分析使用者
的偏好,進而做廣告投放呈現的參考
- 41. beanstalk 的特性
• 輕量化、高效
– 輕量化的通訊協定
– 將工作資訊儲存在記憶體中
• 工作具有優先序
– 支援 32 bits 的優先序表示
• 可將工作永續化
• 分散式容錯能力
• 逾時工作的控制
– 若consumer逾時無法完成工作,則工作會被從
RERSEVED狀態移回READY,供其他consumer繼續處理
- 43. beanstalk 的 Java Client
• beanstalk 有支援多種語言的客戶端
• Java 版客戶端TrendrrBeanstalk
– https://github.com/dustismo/TrendrrBeanstalk