其实无论是大数据领域还是我们日常web开发等领域,这几个词对于我们做IT的来说并不陌生,只是在不同领域的认知程度不同罢了,了解这几个词的含义可以有效的辅助我们技术学习以及日常开发。
(1)分布式
一个业务拆分为多个子业务,然后部署在不同的服务器上执行。
随着我们的数据量越来越大,用户越来越多,服务器的压力会越来越大,对处理效率的要求也会越来越高。
传统的处理方法是努力去提升我们的硬件设施,对于单机来说无非是CPU、内存、硬盘这三个关键组件,也是我们常说的纵向扩展。但是以这种方式去提升性能会带来三个主要问题:
- 投入成本太高。硬盘、CPU、内存条都不便宜,过高的性能要求会带来极大的投入成本;
- 硬件性能瓶颈。硬件的发展与提升是远远跟不上目前的实际需求增长速度的;
- 难以保证良好的稳定性与可靠性。稳定性与可靠性在我们目前的数据环境下显的尤为重要,传统的单机硬件提升等于将鸡蛋放在了一个篮子里,一旦该节点宕掉,无法保证可靠、快速的数据恢复机制以及临时服务应急机制。
分布式是一种新的处理方法,也就是我们常说的横向扩展的一方面。既然一台服务器处理业务有困难,传统的提升硬件性能又不稳妥,那何不将大业务拆分成一个个小业务,部署在不同的服务器上,这样横向的增加服务器的数量与提升单机的硬件性能相比成本大大降低,同时可靠性也有所提升,