这就是三十年河东、三十年河西的轮流转。
当年提出系统结构要内聚,接口要简洁清晰;如今的微服务正好相反。
所谓微服务就是这个系统的每个模块都是自成一体的,可以认为其拥有不依赖其他模块的能力。这样一来,其可以独立向外提供服务,甚至可以独立存在。
我举个例子,你就懂了:一个网站,又有登录、又有新闻、又有BBS、又有邮箱,按说这是一个整体,无论登录权限,还是浏览、交互都是机体的一部分。不能割裂。但在微服务体系下,这些都是独立的,你可以理解为新闻是一个独立的割裂存在,BBS是一个独立的割裂存在,邮件是一个独立的割裂存在。你懂了吗?无论是界面、还是业务逻辑、还是数据存取都是各自的独立一套。不是仅界面割裂,是完全的从上到下的割裂。我觉得例子功能粒度大,也可以功能粒度更小。
你可以想想,每个模块都可以独立存在,对外提供功能。甚至其他模块不存在,某模块也可以独立存在,这不是小系统是什么?而每个这种模块堆起来一个所谓的系统。那这中间为了保障每个模块独立存在的那些功能又得重复多少啊!?你想想吧,每个模块都有一套维持其存在的这种机制,每个模块都有这么一堆。这不是重复实现吗?这还哪有一个系统的概念哪!?简直就是功能超市。所以,这怎么说呢?反正就是这么个玩意儿吧!