一、MapReduce是用于解决什么问题的? 每一种技术的出现都是用来解决实际问题的,否则必将是昙花一现,那么MapReduce是用来解决什么实际的业务呢? 首先来看一下MapReduce官方定义: 总结一句话:MapReduce就是批量处理海量数据的分布式计算框架。 在数据规模比较小时,如果要批量 ...
分类:
其他好文 时间:
2017-11-12 14:52:53
阅读次数:
110
当有Consumer需要大量的运算时,RabbitMQ Server需要一定的分发机制来balance每个Consumer的load。接下来我们分布讲解。 应用场景就是RabbitMQ Server会将queue的Message分发给不同的Consumer以处理计算密集型的任务: 1. Messag ...
分类:
其他好文 时间:
2017-11-09 18:35:38
阅读次数:
204
boost::io_service解读 asio是boost提供的一个c++异步编程模型库,其核心类io_service,在多线程编程里面提供了任务队列和任务分发功能,在socket、io编程里主要作为一个事件驱动器(完成端口、select、poll、epoll等)。 队列模型 每个io_servi ...
分类:
其他好文 时间:
2017-10-28 12:55:57
阅读次数:
165
消息分发 前言 我们在用到消息队列的场景,一般是处理逻辑复杂,耗时,所以将同步改为异步处理,接入队列,下游处理耗时任务。 队列消息数量很大,且下游worker进程(消费者)处理耗时长,所以就有了任务的积压。rabbitmq提供了任务分发的机制。 流程弱化如下图: 可以接入多个消费者,rabbitmq ...
分类:
其他好文 时间:
2017-10-18 19:55:19
阅读次数:
222
一 、 任务 分发 工作流程步骤 1. 合作方按照高升定义的 json 数据格式向高升分发接口 post 任务,高升分发接口会根据接收情况即时反馈接收成功还是失败的结果。二 、 高升 分发 接口 定义 和 返回值1. post 方式 (建议 使用第二种方式) ) :a. 通过 http 参数方式 p ...
分类:
其他好文 时间:
2017-09-25 16:15:06
阅读次数:
157
RabbitMQ 异常与任务分发 异常情况处理 上篇最后提到了这个问题, consumer异常退出、queue出错、甚至rabbitMQ崩溃。因为它们都是软件 ,软件都会有bug,这是无法避免的。所以RabbitMQ在设计的时候也想到了这一点 在之前,消息分发给consumer后立即就会被标记为已消 ...
分类:
其他好文 时间:
2017-09-21 11:25:38
阅读次数:
122
一、概述ZooKeeper(动物园管理员),顾名思义,是用来管理Hadoop(大象)、Hive(蜜蜂)、Pig(小猪)的管理员,同时Apache Hbase、Apache Solr、LinkedIn Sensei等众多项目中都采用了ZooKeeper。ZooKeeper曾是hadoop的正式子项目,... ...
分类:
其他好文 时间:
2017-09-04 17:45:26
阅读次数:
199
Gearman是当年LiveJournal用来做图片resize的,大家也明白图片resize是一个高CPU的操作,如果让web网站去做这个高CPU的功能,有可能会拖垮你的 web应用,那本篇我们来看看gearman是如何解决这个问题的,它的架构图类似下面这样: 从上面这张图,你应该会看到,Gear ...
分类:
其他好文 时间:
2017-08-29 19:40:15
阅读次数:
213
MapReduce是一种编程模型。Hadoop MapReduce采用Master/slave 结构。只要按照其编程规范,只需要编写少量的业务逻辑代码即可实现一个强大的海量数据并发处理程序。核心思想是:分而治之。Mapper负责分,把一个复杂的业务,任务分成若干个简单的任务分发到网络上的每个节点并行 ...
分类:
其他好文 时间:
2017-08-15 10:09:36
阅读次数:
155
1.工作队列(Work Queue)又叫任务队列(Task Queue)指将任务分发个多个消费者。 2.实际操作: 这里使用一个生产者产生多条数据提供给3个消费者 生产者代码: public class Producter { //队列名称 private final static String Q ...
分类:
其他好文 时间:
2017-07-13 12:04:06
阅读次数:
175