【Java】分布式思想的简单理解
在此浅谈自己对分布式的一点理解吧!
在我自己目前写代码用的最多的还是单机结构,自己用来测试还可以,但是想让网站发展起来,让更多的用户来登陆这个网站,单机结构是绝对hold不住地,有人想到了集群,集群即将同一个业务,部署在多个服务器上。可以说和单机结构相比有了一定的提升,而且用起来也很方便,用户多了就加服务器,把代码copy一下,增加几个节点,但是这样到后来的提升是不明显的,也是对资源的不合理利用。为了让服务器的性能最优化,我们引入了分布式结构,也就是说将一个业务分拆多个子业务,部署在不同的服务器上,分布式固然好,但是想要利用分布式结构就不能再copy之前单机结构或集群的代码了,在一开始写这个项目的时候就要进行微服务化处理,将它拆分成多个独立的服务,每个服务都是一个单独的工程,就拿上图的商城来说吧,我们最先将他们分为管理系统和用户购物,根据用户量和管理员数量合理分配服务器。简单来说就是让服务器有针对性的工作,根据需求合理分配服务器数量,提高效率!
使用分布式的一些好处:
- 系统之间的耦合度大大降低,可以独立开发、独立部署、独立测试,系统与系统之间的边界非常明确,排错也变得相当容易,开发效率大大提升。
- 系统之间的耦合度降低,从而系统更易于扩展。我们可以针对性地扩展某些服务。假设这个商城要搞一次大促,下单量可能会大大提升,因此我们可以针对性地提升订单系统、产品系统的节点数量,而对于后台管理系统、数据分析系统而言,节点数量维持原有水平即可。
- 服务的复用性更高。比如,当我们将用户系统作为单独的服务后,该公司所有的产品都可以使用该系统作为用户系统,无需重复开发。
下面是网上盗的一个很生动形象的图片