Submit Search
Upload
Beanstalk
•
1 like
•
861 views
宗志 陈
Follow
Learn The souce code of beanstalk
Read less
Read more
Technology
Career
Business
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 23
Download now
Download to read offline
Recommended
分布式索引系统调研
分布式索引系统调研
zijingyeshao
Rpc原理与实现
Rpc原理与实现
wavefly
Mario
Mario
宗志 陈
bada-data-beautiful
bada-data-beautiful
宗志 陈
Log experience
Log experience
宗志 陈
Pika
Pika
宗志 陈
Disk and page cache
Disk and page cache
宗志 陈
PFZ WorkshopDay Linux - Basic
PFZ WorkshopDay Linux - Basic
Joshua Thijssen
Recommended
分布式索引系统调研
分布式索引系统调研
zijingyeshao
Rpc原理与实现
Rpc原理与实现
wavefly
Mario
Mario
宗志 陈
bada-data-beautiful
bada-data-beautiful
宗志 陈
Log experience
Log experience
宗志 陈
Pika
Pika
宗志 陈
Disk and page cache
Disk and page cache
宗志 陈
PFZ WorkshopDay Linux - Basic
PFZ WorkshopDay Linux - Basic
Joshua Thijssen
PFZ WorkshopDay Linux - Advanced
PFZ WorkshopDay Linux - Advanced
Joshua Thijssen
15 protips for mysql users pfz
15 protips for mysql users pfz
Joshua Thijssen
Level db
Level db
宗志 陈
Paxos introduction
Paxos introduction
宗志 陈
Leveldb background
Leveldb background
宗志 陈
Heroku CIを触ってみる
Heroku CIを触ってみる
Mitch Okamoto
Awk programming
Awk programming
Dr.M.Karthika parthasarathy
Czzawk
Czzawk
宗志 陈
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
YingSiang Geng
D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践
Jackson Tian
Zoo keeper
Zoo keeper
amazingjxq
為什麼 App 卡卡的
為什麼 App 卡卡的
鈺翔 林
Zabbix in PPTV
Zabbix in PPTV
ViSenze - Artificial Intelligence for the Visual Web
Pptv lb日志实时分析平台
Pptv lb日志实时分析平台
drewz lin
Zoo keeper
Zoo keeper
amazingjxq
More Related Content
Viewers also liked
PFZ WorkshopDay Linux - Advanced
PFZ WorkshopDay Linux - Advanced
Joshua Thijssen
15 protips for mysql users pfz
15 protips for mysql users pfz
Joshua Thijssen
Level db
Level db
宗志 陈
Paxos introduction
Paxos introduction
宗志 陈
Leveldb background
Leveldb background
宗志 陈
Heroku CIを触ってみる
Heroku CIを触ってみる
Mitch Okamoto
Awk programming
Awk programming
Dr.M.Karthika parthasarathy
Czzawk
Czzawk
宗志 陈
Viewers also liked
(8)
PFZ WorkshopDay Linux - Advanced
PFZ WorkshopDay Linux - Advanced
15 protips for mysql users pfz
15 protips for mysql users pfz
Level db
Level db
Paxos introduction
Paxos introduction
Leveldb background
Leveldb background
Heroku CIを触ってみる
Heroku CIを触ってみる
Awk programming
Awk programming
Czzawk
Czzawk
Similar to Beanstalk
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
YingSiang Geng
D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践
Jackson Tian
Zoo keeper
Zoo keeper
amazingjxq
為什麼 App 卡卡的
為什麼 App 卡卡的
鈺翔 林
Zabbix in PPTV
Zabbix in PPTV
ViSenze - Artificial Intelligence for the Visual Web
Pptv lb日志实时分析平台
Pptv lb日志实时分析平台
drewz lin
Zoo keeper
Zoo keeper
amazingjxq
Similar to Beanstalk
(7)
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践
Zoo keeper
Zoo keeper
為什麼 App 卡卡的
為什麼 App 卡卡的
Zabbix in PPTV
Zabbix in PPTV
Pptv lb日志实时分析平台
Pptv lb日志实时分析平台
Zoo keeper
Zoo keeper
Beanstalk
1.
Beanstalkd 习
陈 11 11 11
2.
绍
• Beanstalkd 队 统 11 11 11
3.
设计
• •队 • Producer-Comsumer 11 11 11
4.
11
11 11
5.
• job
处 务, Beanstalkd 单 , tube • tube 务队 , 储 jobs. producer consumer 对 11 11 11
6.
• producer Job
产 , 过Put job tube • consumer Job 费 过reserve/ release/bury/delete 获 job 变 job 态 11 11 11
7.
Beanstalkd jobs 11
11 11
8.
协议
• Beanstalk 应 层协议,运 TCP协议 . • Beanstalk 协议 ASCII编码 11 11 11
9.
协议
• 协议 户 发过 , 们 规 处 这 , 给对 . • http协议规 务 时 传给 务 这 骤 , 务 处 , 给 户 11 11 11
10.
协议
•Beanstalkd 协议 rn标 传输结 •put<pri><delay> <ttr><bytes> rn 11 11 11
11.
码
typedef struct job { unsigned int pri; int data_size; int data_read; unsigned char data[]; } *job; 11 11 11
12.
typedef struct conn
{ int fd; char state; struct event evq; char cmd[LINE_BUF_SIZE]; int cmd_len; int cmd_read; const char *reply; int reply_len; int reply_sent; job job; } *conn; 11 11 11
13.
过
• listen_socket =make_server_socket (HOST, PORT); • Socket链 监 3232 11 11 11
14.
过
• set_sig_handlers(); • 对SIGPIPE 进 获 11 11 11
15.
过
• event_set(&listen_evq, listen_socket, EV_READ | EV_PERSIST, (evh) h_accept,&listen_evq); • listen_evq,绑 listen_socket. 11 11 11
16.
过
• event_add(&listen_evq, NULL); • event_dispatch(); • listen_evq, 让 进 环, 绪 处 . 11 11 11
17.
过
• 发,执 h_accept() . • h_accept() conn 设 state为 STATE_WANTCOMMAND. 11 11 11
18.
过
• event_set(&c->evq, c->fd, flags, c- >evq.ev_callback ? : handler, c); • event_add(&c->evq, NULL); • c->evq, 绑 c->fd. . 11 11 11
19.
过
• 发 c->evq,执 h_conn • c->state 为STATE_WANTCOMMAND 寻 结 rn. do_cmd() 11 11 11
20.
过
• c->state 为STATE_WANTDATA读 , Job. conn Job. • 这 Job Tube .(这 还 ) 11 11 11
21.
过
• c->state 为STATE_SENDWORD时, c- >fd 11 11 11
22.
过
• do_cmd() 负责处 put,peek,reserve , 对Job 处 . 11 11 11
23.
谢谢! 11
11 11
Download now