从master-worker模型看团队管理

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

104347943.jpg

这种方式的典型应用就是memcached网络模型的使用。
      这样看似很公平了吧。可是实际中肯定某人因为能力或者外界干扰的原因无法按时完成任务,这样也就影响了整体处理的效率。
      干脆我们采用敏捷团队的做法,由团队成员自己选择任务,根据自己的能力甚至兴趣爱好,自我量力的保证自己可以完成,甚至效率高的成员还可以多选多做。如图二:

wKiom1Mi-UnRvlB_AAGZJBRyXXM054.jpg

这种方式的典型应用就是nginx。
       再回到上面的场景中,每个团队成员怎样得到任务呢?我对于图一中的模型,当我们往每个worker队列中push任务时就采用某种通知机制告知worker有任务了,快领命干活。比如memcahed的网络模型采用每个worker线程和master线程之间建立一个pipe来进行通知。(如果团队负责人简单地按照RR的方式分配任务,作为一个新手你肯定会抱怨,为什么我都忙得焦头烂额了还给我任务,天啊,谁来帮帮我啊)。对于图二中的方式,当有新任务时,大家看看谁能做,比如nginx就是采用worker争锁的方式来竞争任务,master只是负责管理每个worker,多好的团队成员,领导也省心。

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


参考书籍:
《深入理解计算机系统》  13章-并发编程
《UNIX环境高级编程》    11章-11.3线程标识
本文转自永远的朋友博客51CTO博客,原文链接http://blog.51cto.com/yaocoder/1170944如需转载请自行联系原作者

yaocoder
相关文章
|
4月前
|
分布式计算 Hadoop 数据安全/隐私保护
HDFS--HA部署安装:修改配置文件 测试集群工作状态的一些指令
HDFS--HA部署安装:修改配置文件 测试集群工作状态的一些指令
44 0
|
5月前
|
Kubernetes 调度 容器
二进制 k8s 集群下线 worker 组件流程分析和实践
二进制 k8s 集群下线 worker 组件流程分析和实践
63 0
|
5月前
|
JSON Kubernetes 应用服务中间件
二进制 k8s 集群下线 master 组件流程分析和实践
二进制 k8s 集群下线 master 组件流程分析和实践
75 0
|
自然语言处理 Kubernetes jenkins
devops-k8s部署jenkins和动态创建slave节点
1. K8S部署jenkins 2. 动态创建slave集群节点 3. 使用PodTemplate构建流水线
devops-k8s部署jenkins和动态创建slave节点
|
设计模式 分布式计算 Scala
Spark Master 和 Worker 项目需求 | 学习笔记
快速学习 Spark Master 和 Worker 项目需求
78 0
Spark Master 和 Worker 项目需求 | 学习笔记
|
存储 设计模式 分布式计算
分布式系统架构(一)——Master-Workers 架构
分布式系统架构(一)——Master-Workers 架构
379 0
分布式系统架构(一)——Master-Workers 架构
|
Java 大数据
解决ZooKeeper实验进程协作中的一些问题
大数据的学习总是伴随很多问题,服务端总会抛出一些异常,我们需要做到的就是学会去解决这些问题,以后再出现也能更加从容面对。
94 0
解决ZooKeeper实验进程协作中的一些问题
|
Kubernetes Linux Docker
K8s使用kubeadm搭建测试单master节点案例(含整套部署流程)
K8s使用kubeadm搭建测试单master节点案例(含整套部署流程)
K8s使用kubeadm搭建测试单master节点案例(含整套部署流程)
|
存储 设计模式 运维
K8s worker节点CRI-O的演变
K8s worker节点CRI-O的演变
224 0
K8s worker节点CRI-O的演变
|
Kubernetes 安全 应用服务中间件
如何优雅的维护 K8S Worker 节点
在使用 kubectl drain 维护 Node吗? 你可能忽略了一个问题。
1971 0