什么是分布式?

  分布式是指在多台不同的服务器中部署不同的服务模块,通过远程调用协同工作,对外提供服务。

为什么要用分布式?

  要理解为什么要使用分布式,首先来了解一下集中式系统

  集中式系统简单来说就是将一个应用和服务都部署在一台服务器上,整个应用和服务的业务功能都在这台服务器上完成。这种结构在应用和服务的部署上面非常简单,只需要将应用的运行实例安装到一台服务器上就可以了。

  那么这种集中式系统有什么不好的地方呢?

  • 系统大而复杂。

      整个应用和服务做成一块,如果该应用比较小,功能比较简单时问题还不太突出。当应用的业务不断扩大,功能不断增多时,整个应用必然会越做越大,最后整个系统变得十分大且复杂,还会显得很臃肿。

  • 运行、维护成本高

      一个应用设计得太庞大太复杂,就会增加开发以及维护成本,而且要运行一个庞大的应用,对服务器的性能要求就很高,一般需要像IBM、HP等厂商生产的昂贵大型主机。

  • 扩展性差

      在新业务新功能的增加上面,由于代码量大且结构复杂,阅读、修改代码的工作量就会很大;另外在性能的提升上面要提升系统的性能,更多的要提升服务器的硬件性能,但硬件方面的性能上限很快就会到达,要想在此之前继续提升就会变得很困难。

  • 容易发生单点故障

      因为整个系统集中部署在一台服务器上,一旦这台服务器发生故障,则会导致整个应用系统瘫痪。

  分布式就是为了解决上述问题而出现的。

分布式的优点

  • 将系统进行分层分割,将不同的业务或功能模块部署到不同的服务器上,使整个应用的结构更加清晰明了
  • 将一些复杂的功能或计算进行分解部署,可以节约整体的处理时间,提升系统性能
  • 可以使应用从服务层面进行弹性扩展,降低开发与维护的成本

      每个模块处理不同的业务,有不同的功能,对外开放制定好的API,其他业务或功能要想与之通讯,则按照这些API规则进行,这样新增业务或功能时,不需要理解其他模块的内部实现,只需要对接那些开放的API与它们进行通信即可。