虽然了解如何配置zookeeper和dubbo,并且也配置成功了,但是对于深层的含义还是不太理解,为什么要这么创建一个项目;为什么要把项目分成provider(服务提供者)和consumer(服务消费者);用这样结构的项目可以实现什么功能。希望能够有大神来帮忙捋一捋思路
很想知道实际应用场景会是什么样子的,在服务器部署项目的时候,这种结构的项目是怎么部署的,provider部署在一个服务器,consumer部署在另一个服务器吗?然后consumer可不可以有多个,不同的consumer之间可以相互联系这样?
一般部署在不同的服务器,简书有篇博文介绍了下,可以看下:https://www.jianshu.com/p/5e3cbac93689
1.以往单体应用将各种各类功能塞入到一个应用端,当遇到某1个功能的系统瓶颈时,往往联想到使用水平扩展使用更多的机器来部署该应用。而往往遇到瓶颈的地方只有几个功能模块而现在却需要对所有模块进行扩展,这在一定程度上会造成资源的浪费。而在使用了服务治理后仅仅只需要对需要的功能模块进行机器扩展就能够满足所需。
2.使用了服务治理,在修改源代码方面只需要修改自己对应的功能模块代码,而不是针对整个应用进行修改,可以很大程度避免牵一发而动全身的尴尬情况。
3.至于项目如何划分服务提供者以及服务消费者大致有2个方向
1.根据项目的业务情况划分不同的提供者,当A业务需要B业务时则由A业务主动调用B业务模块进行,而B业务需要C业务则B业务主动调用C业务模块,而C业务需要A业务则由C业务主动调用A业务模块,此时的调用链将呈现出错综复杂的连接情况。该场景比较适合某些需要快速完成的项目。
2.根据基本业务中划分出最原子性的提供者,也就是说该提供者不依赖其他提供者能够独立完成自己所需要完成的并且它们作为最底层提供者。而在上层提供者可以分别对下层提供者进行组装在加工形成1个更加复杂的提供者,此时的调用链呈现出链式且分叉的连接情况。该场景比较适合做一个经过统一业务而固化的产品,通过固化的产品进行组合搭配产生更加丰富的新产品。