Map & Reduce 与 消息队列形式的分发
admin 提交于 星期四, 04/24/2014 - 17:43Map & Reduce 是一种计算的模形
RabbitMQ是分配任务的的实现。
使用的方式是现实的问题,用map & reduce的计算模型去实现。写好怎么分配任务,怎么折分,写好map的函数,通过队列把任务分到很多map进程,写好reduce函数,把map的计算结果,折分出来,放到队列,队列再投放到reduce进程。这样方式,可以通过增加机器增加计算量,某种程度上对某些任务的分布式计算。
这里面实现的很多细节都是需要自己去定义的。
这样就可以专注于功能的开发,对计算量大的,可以以服务的形式独立出去。再写成分布式计算。
这是对架构具有关键性的一步,如果没有它,就意味着架构没法成长。后面,流量大了,可以增加机器很简单就可以解决问题。至此,再也不用担心架构超级大型的系统了,就是说,随着流量的增加,我的系统是可能过增加机器来增加算力,而且可以接近无法的扩展。
用rabbitMQ的一个很大好处,可以不局限用一种语言,我可以用任何语言来实现复杂的服务,但是还是具有可扩展性的,因为只要增加机器就可以进行扩展了,完全可以用原来的代码。
可以做出很复杂的应用,当一些服务很稳定,流量很大时,就可以独立开来,用分布式计算来实现。