为何要使用微服务? 技术为业务而生,架构也为业务而出现,固然SOA和微服务也是由于业务的发展而出现。出现SOA和微服务框架与业务的发展、平台的壮大密不可分,下面借用dubbo的网站架构发展图和说明:前端
单一应用架构 当网站流量很小时,只需一个应用,将全部功能都部署在一块儿,以减小部署节点和成本。 此时,用于简化增删改查工做量的 数据访问框架(ORM) 是关键。 垂直应用架构 当访问量逐渐增大,单一应用增长机器带来的加速度愈来愈小,将应用拆成互不相干的几个应用,以提高效率。 此时,用于加速前端页面开发的 Web框架(MVC) 是关键。 分布式服务架构 当垂直应用愈来愈多,应用之间交互不可避免,将核心业务抽取出来,做为独立的服务,逐渐造成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。 此时,用于提升业务复用及整合的 分布式服务框架(RPC) 是关键。 流动计算架构 当服务愈来愈多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增长一个调度中心基于访问压力实时管理集群容量,提升集群利用率。 此时,用于提升机器利用率的 资源调度和治理中心(SOA) 是关键。 平台随着业务的发展从 All in One 环境就能够知足业务需求(以Java来讲,可能只是一两个war包就解决了)。后端
发展到须要拆分多个应用,而且采用MVC的方式分离先后端,加快开发效率;在发展到服务愈来愈多,不得不将一些核心或共用的服务拆分出来,其实发展到此阶段,若是服务拆分的足够精细,而且独立运行,我以为就能够将之理解为一个微服务了。架构
声明(侵删)框架
参考文献: 原文:https://blog.csdn.net/jiaoyajieqianyi/article/details/84102840分布式