本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p/5847441.html html
SOA和微服务究竟是什么关系?前端
说实话,我确实不明白SOA和微服务到底有什么本质上的区别,二者说到底都是对外提供接口的一种架构设计方式。我倒以为微服务其实就是随着互联网的发展,复杂的平台、业务的出现,致使SOA架构向更细粒度、更经过化程度发展,就成了所谓的微服务了。以这种说法作为根据,我以为SOA与微服务的区别在于以下几个方面:后端
为何要使用微服务?微信
技术为业务而生,架构也为业务而出现,固然SOA和微服务也是由于业务的发展而出现。出现SOA和微服务框架与业务的发展、平台的壮大密不可分,下面借用dubbo的网站架构发展图和说明:架构
平台随着业务的发展从 All in One 环境就能够知足业务需求(以Java来讲,可能只是一两个war包就解决了);发展到须要拆分多个应用,而且采用MVC的方式分离先后端,加快开发效率;在发展到服务愈来愈多,不得不将一些核心或共用的服务拆分出来,其实发展到此阶段,若是服务拆分的足够精细,而且独立运行,我以为就能够将之理解为一个微服务了。框架
理想中的微服务架构分布式
没有什么东西是完美的,网站架构也是这样的,只有「比以前好一点」的架构或「目前最好的实现方式」,不存在理想中的架构,那么理想中微服务架构应该是怎么样的呢,我以为至少应该有以下几个特色:ide
固然,这只是其中能想到的几点,实际环境中用到的微服务框架有可能会根据实际业务需求优化出更加个性化的功能,也可能有些功能是不须要的。仍是那句话,架构是服务于业务的,能快速方便的知足业务需求的架构才是好的架构,才是好的微服务架构。微服务
欢迎关注公众号「gushidefengzheng」古时的风筝优化
还能够加入 Java 微信讨论群(若是二维码过时:请加微信:fengdezitai001 ,备注:cnblogs):
以上只是我的理解,将本身的理解写出,以备本身查看。
也许我说的并必定对,也许我说的全是错的。