问题:一台服务器,因为业务需要,或许需要从多台服务器获取数据,并且返回数据,并合并。

 在这里,令人想起一种编程模式,那就是著名的MapReduce,分久必合,合久必分。使用这个模型,可以将以上那个问题思路清晰化。

 请求的时候,是map操作,将所有数据包准备好,然后异步发送请求。当数据返回,是先记录下来(无论成功或失败,都视为一个数据)。当所有请求都返回齐全,就调用reduce。统一操作。

 这里,用户层,就只需要关心有哪些数据需要发送,和发送到哪里。比如map里面有个EmitIntermediate操作,这里面的key可以是逻辑上的目标服务器,value是数据包。

 这样,很多思路就比较清晰了。

 接下来,问题来了,这个mapreduce框架该如何搭?才能灵活使用,又不会将人套牢?能适用更多的类型。比如,map的参数应该有哪些?reduce的呢?诸多诸多,都需要考虑,额,或许是试验。做出多个demo,然后看看,哪个比较合眼。