用master-worker模型比对团队管理
  TEZNKK3IfmPf 2023年11月14日 16 0

       先讲一个场景:“团队负责人接到一个新项目,他会把项目进行需求细化,功能细化,然后他会分配给不同的团队成员完成”。 在这个场景中,团队负责人就是master,团队成员就是worker,至于这样做的好处,不用说大家也明白,如果团队负责人一个人干,估么着他要么累死,要么任务完不成被领导骂死。同理,架构层面master-worker模型的最大作用就是提高处理效率,特别是在多核cpu上,多worker的并发执行更有效的利用了cpu资源,提高了处理效率。在我们的实际应用中master-worker模型往往会结合生产者-消费者模型使用,由master产生一个队列,而每个worker作为消费者消费这个队列。

       回到上面的场景中,是个典型的瀑布团队的做法,由团队负责人把各个任务强行摊派给每个团队成员,他假设给每个人分配了合适的任务,也假设每个人能在指定时间内完成任务,这种方式的典型应用就是memcached网络模型的使用。如下图:

用master-worker模型比对团队管理用master-worker模型比对团队管理_master_02

       再回到上面的场景中,每个团队成员怎样得到任务呢?我对于memcached网络模型,当我们往每个worker队列中push任务时就采用某种通知机制告知worker有任务了,快领命干活。比如memcahed的网络模型采用每个worker线程和master线程之间建立一个pipe来进行通知。 比如团队负责人简单地按照RR(轮询)的方式分配任务,作为一个新手你肯定会抱怨,因为没有考虑到你的实际处理能力。对于nginx的方式,当有新任务时,首先看看大家谁能做,比如nginx就是采用worker争锁的方式来竞争任务,master只是负责管理每个worker。

       以上就是master-worker模型的简单介绍,至于他的适用场景有很多很多,大家可以自己扩展。另外从上面的场景模拟中我也想向大家推荐敏捷团队的管理组织方式。


参考书籍:

《深入理解计算机系统》  13章-并发编程

《UNIX环境高级编程》    11章-11.3线程标识

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月13日   23   0   0 VRRPmaster接口
  TEZNKK3IfmPf   2023年11月13日   30   0   0 VRRPmaster路由器
  TEZNKK3IfmPf   2023年11月14日   21   0   0 并发网络编程
TEZNKK3IfmPf