Colonel——视频转码集群程序

1,272 views

Published on

一个用于视频转码集群的程序简介

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,272
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Colonel——视频转码集群程序

  1. 1. Colonel<br />新浪视频转码程序设计<br />
  2. 2. 把所有的机器整合为一台大机器<br />任意一台机器可坏<br />可通过增加上传机、中心机、转码机分别提高IO、灾备、计算的性能<br />功能模块(sergeant)可拆卸、可更新,而不影响任何其他部件(注:规范日志输出)<br />目标:<br />
  3. 3. 上传机n台,部署1个Captain程序和1个sergeant程序<br />上传机与Colonel通信,知道把文件rsync给谁<br />中心机2台,均部署1个Colonel程序<br />中心机同时工作,互通有无<br />转码器n台,均部署1个captain程序和n个sergeant程序<br />转码机接受上传机的文件、请求中心机的处理链、并执行之<br />物理规划:<br />
  4. 4. Colonel管理一个集群,<br />Colonel与外部逻辑打交道——取得任务、报告状态,<br />Colonel为每个视频生成处理链、下发任务给Captain,<br />Colonel是唯一与外部逻辑打交道的程序,<br />Captain管理一台机器,<br />Captain与Colonel通信——取得任务、报告状态,<br />Captain调度Sergeant完成具体工作,<br />Sergeant管理一个任务,<br />每个Sergeant完成自己的特定任务——按要求转码、分发文件、切割等等。<br />逻辑规划:<br />
  5. 5.
  6. 6. 师部指挥官<br />Colonel:上校<br />
  7. 7.
  8. 8. 伪码:<br />listen(rsync)<br />{<br />search_who_is_idle;<br /> getaconverter;<br /> tell the other colonel;<br /> print convert_ip;<br />}<br />Listen(convert)<br />{<br /> get filename;<br />search_the_info_of_the_file;<br />create_convert_argv;<br />create_process_link;<br />print_process_link; <br />}<br />
  9. 9. 营部长官<br />Captain:上尉<br />
  10. 10.
  11. 11. 伪码:<br />While(have_a_file)<br />{<br />检查可行性(文件存在么?合法么?完整么?);<br /> socket询问Colonel如何处理;<br />分析Colonel命令(重现处理链,放入hash);<br />foreach (%hash)<br /> {<br />eval<br /> {<br /> fork_sergeant_1;<br />do_sergeant_work;<br /> log;<br /> }<br /> success {reporttocolonel;}<br /> fail{reporttocolonel;}<br /> }<br />rsynclogfiletocolonel;<br /> reporttocolonel;<br />}<br />
  12. 12. 战斗小队中坚<br />Sergeant:士官<br />
  13. 13. Sergeant<br />
  14. 14. 伪码:<br />@argv = shift;<br />elva<br />{<br />mencode…<br />}<br />print logfile;<br />socket report to Captain;<br />exit;<br />
  15. 15. 获取vid: 202.106.184.197:8888、 202.106.182.185:8888<br />转化状态通知:表v_auditsinatv_auditsinatv_video<br />外部接口:<br />
  16. 16. Staff——日志统计<br />AirForce—— 上传、转化机合一,减少IO量,加快转码速度<br />二期战役<br />
  17. 17. 完<br />

×