Beanstalkd是什么?
Beanstalkd是一個高性能、輕量級的分布式內存隊列系統
基本概念
job:需要異步處理的任務(或消息),是Beanstalkd中的基本單元
tube :管道(或消息隊列),用來存儲同一類型的job,是producer和consumer操作的對象
producer: job的生產者,通過put命令來將一個job放到一個tube中
consumer: job的消費者,通過reserve/release/bury/delete命令來獲取job或改變job的狀態
job狀態
delayed: 延遲狀態
ready: 待消費者讀取狀態
reserved: 消費者處理中狀態
buried: 預留狀態
delete: 處理完成刪除狀態
特性
priority:優先級,支持0到2^32的優先級,值越小,優先級越高,默認優先級為1024
delay: 延遲,延遲消費,用來實現定時任務
持久:通過binlog將job及其狀態記錄到文件里面,在Beanstalkd重啟或掛掉后,通過讀取binlog來恢復之前的job及狀態
TTR:超時控制,put一個job時,可以設置超時時間,如果consumer不能在TTR時間內處理完成,job將會被置為ready狀態,供其他consumer繼續執行。
新聞熱點
疑難解答