分布式计算思路(第一季:001)
1.粗粒度:应用采取分布式,也就是把应用放在多台机器上,并采用集群的机构,它是基于每一个IP进行分配。
2.中粒度:我个人认为,应该是线程级别的,每一个程都会对应到相对的应用。
3.细粒度:这个应该是基于CPU级别,每一条运算指令都可以分配到相应的集群中的CPU上。
对于粗粒度,也就是目前很成熟的多层架构中采用的集群。
中粒度和细粒度其实听说的比较少。
感觉还是基于概念比较多一些,当然还有采用分布式文件系统的方式,但是这个比较常见在淘宝类或者搜索引擎类的使用中。
我对于中细粒度比较感兴趣,毕竟是概念多一些。
这里就说说的自己的想法:(这两个合在一起说)
首先最好保证机器之间是光纤连接,这样能够支持大数据量的IO操作。
暂时抛开高可用性,我们基于原理来探讨一下。
1:开发语言应该是支持多内核的语种。
2:开发语言最终应该运行在类似JVM的RunTime上。
3:RunTime这一层对于CPU资源应该是充分的利用。
4:有完善的IO操作机制。
大概的原理是对于每一条指令,都会被分配到一个独立的进程(或者线程),然后由Runtime将该操作指令分配到CPU有空闲的服务器上,由该服务器负责处理。
处理后返回结果。
如果架构设计的合理的话,对服务器的架构也会产生一定的影响,比如服务器的配置,传统硬盘和固态硬盘的采用等。。。
当然只是一个大概,我会在随后的文章中逐渐完善各个部分的思路。
包括网络的设计,CPU空闲算法,RUNTIME的框架。
这里感谢http://lzy.iteye.com/
是他给了我具体的思路:)
同时感谢CCTV,MTV
呵呵,希望我能够完成这个万里路。