1 使用GCD实现打地鼠1.1 问题GCD是Grand Central Dispatch中央任务分发中心的简称,是苹果公司为多核的并行运算提出的解决方案。GCD在工作时会自动利用更多的处理器核心,以充分利用更强大的机器,它是基于C语言的API。本案例使用GCD实现打地鼠小游戏,在界面随机产生mous...
分类:
其他好文 时间:
2015-12-15 22:48:34
阅读次数:
329
在上篇文章中,我们解决了从发送端(Producer)向接收端(Consumer)发送“Hello World”的问题。在实际的应用场景中,这是远远不够的。从本篇文章开始,我们将结合更加实际的应用场景来讲解更多的高级用法。 当有Consumer需要大量的运算时,RabbitMQ Server需要一定的...
分类:
其他好文 时间:
2015-11-17 23:17:38
阅读次数:
205
计算任务分发。 master把需要计算的用户数据,不断的推送消息队列。 程序一致性。 Worker订阅相同的消息队列即可,无需更改程序代码。 任意扩容。 由于程序完全一样,意味着如果想要加快速度,重复部署一份程序到新机器即可。 当然这是理论上的,实际当中会受限于消息队列、存储层(数据库)。 容灾性。...
分类:
其他好文 时间:
2015-11-12 21:46:35
阅读次数:
188
在分布式计算中,leader election是很重要的一个功能,这个选举过程是这样子的:指派一个进程作为组织者,将任务分发给各节点。在任务开始前,哪个节点都不知道谁是leader或者coordinator。当选举算法开始执行后,每个节点最终会得到一个唯一的节点作为任务leader。除此之外,选举还...
分类:
其他好文 时间:
2015-11-02 17:34:35
阅读次数:
1540
direct分发机制会根据分发关键字(routing_key),将task分发到指定的queue,work只需要监听相应的queue即可,在代码中,需要设置相应的routing_key fanout机制相反,他会将task分发给所有的queue fanout模式: ...
分类:
其他好文 时间:
2015-10-26 01:58:08
阅读次数:
323
简介Gearman提供了一种通用的程序框架来将你的任务分发到不同的机器或者不同的进程当中。它提供了你进行并行工作的能力、负载均衡处理的能力,以及在不同程序语言之间沟通的能力。Gearman能够应用的领域非常广泛,从高可用的网站到数据库的复制任务。总之,Gearman就是负责分发处理的中枢系统,它的优...
分类:
其他好文 时间:
2015-09-04 19:50:22
阅读次数:
361
1背景介绍现今分布式计算框架像MapReduce和Dryad都提供了高层次的原语,使用户不用操心任务分发和错误容忍,非常容易地编写出并行计算程序。然而这些框架都缺乏对分布式内存的抽象和支持,使其在某些应用场景下不够高效和强大。RDD(Resilient Distributed Datasets弹性分...
分类:
其他好文 时间:
2015-07-15 12:43:05
阅读次数:
164
RabbitMQMessage Queue消息队列持久化数据丢失目录(?)[-]准备Round-robin dispatching 循环分发Message acknowledgment 消息确认Message durability消息持久化Fair dispatch 公平分发最终版本 在上篇文章中,...
分类:
其他好文 时间:
2015-07-09 07:22:46
阅读次数:
256
在实际工作中,会碰到两个问题(1)现有系统想集成一个开发组件,而该组件的SDK却没有现有语言版本。(2)系统中的一项功能非常耗费资源,最好能利用其它机器来处理。本文介绍gearman的使用,实现PHP调用JAVA。gearman是支持网络方式调用,因此也可以用来实现任务分发。gearman的官方网站...
分类:
编程语言 时间:
2015-06-16 10:57:52
阅读次数:
175
前言:Hadoop 2.0之后,原先的MapReduce不在是简单的离线批处理MR任务的框架,升级为MapReduceV2(Yarn)版本,也就是把资源调度和任务分发两块分离开来。而在最新的CDH版本中,同时集成了MapReduceV1和MapReduceV2(Yarn)两个版本,如果集群中需要使用Yarn做统一的资源调度,建议使用Yarn。
CDH对Yarn的部分参数做了少了修改,并且添加了相...
分类:
其他好文 时间:
2015-05-29 23:18:43
阅读次数:
198