单体式的架构更适合轻量级的简单应用
微处理架构——处理复杂事物
1 分布式架构的演化史
单体时代
![af25ce6d8bbc9b885ae301a89149101d.png](https://i-blog.csdnimg.cn/blog_migrate/e91809783aa1f7213c0cf7ca385ccf18.jpeg)
一开始你有一个很成功的关键业务应用,后来就变成了一个巨大的,无法理解的怪物。因为采用过时的,效率低的技术,使得雇佣有潜力的开发者很困难。应用无法扩展,可靠性很低,最终,敏捷性开发和部署变的无法完成。
SOA时代
![740b884b2a6106c6ed8168020ff1a951.png](https://i-blog.csdnimg.cn/blog_migrate/ebdba118dd87ed349b16c78451839adb.jpeg)
面向服务的架构(SOA),每个分布式系统可以通过一组集成在一台计算机或多台计算机上运行的服务来构建。我们通过 WSDL(用于 SOAP 协议)或 WADL(用于 REST 协议)等语言适当地定义服务接口。接着,服务的使用者将利用这些接口来进行客户端的实现。
微服务时代
![19a6a2d13f01cf8bbc37abd2bae0ef5f.png](https://i-blog.csdnimg.cn/blog_migrate/1ace57c73a8ae46433c925e428715adb.jpeg)
表面上看来,微服务架构模式有点像SOA,他们都由多个服务构成。但是,可以从另外一个角度看此问题,微服务架构模式是一个不包含Web服务(WS-)和ESB服务的SOA。微服务应用乐于采用简单轻量级协议,比如REST,而不是WS-,在微服务内部避免使用ESB以及ESB类似功能。微服务架构模式也拒绝使用canonical schema等SOA概念。
微服务的扩展--网格(ServiceMesh)时代
![6637428ffa2199b485260584d7b9aaa5.png](https://i-blog.csdnimg.cn/blog_migrate/f382a41048ad824ebe256aa5098cdad6.jpeg)
容器技术为 Netflix、LinkedIn 和 Twitter 等组织提供了底层框架,用于构建他们要求苛刻的永远在线的多区域、多数据中心应用平台。但这并不意味着利用容器技术没有任何难点。基于容器的部署带来的轻量特性让跨多个容器的平台维护和编排变得非常复杂。随着微服务架构(MSA)的出现,单体式应用程序被分成更小块的微服务。这些微服务能够完成整个服务里的某一个特定功能并部署在容器中(在大多数情况下都可以)。这给分布式系统生态系统带来了一系列新的需求。要让系统最终保持一致,并且彼此之间没有太多复杂的通信。
2 微服务的技术体系
![1383a344b1c904c96f0aa479f3eca945.png](https://i-blog.csdnimg.cn/blog_migrate/ce2a1701ce97e79d9b5563791fe988c3.jpeg)
3 spring cloud生态圈
![03861b842684c8f824ccad0acf027a24.png](https://i-blog.csdnimg.cn/blog_migrate/d61cad24131ff71ab876584918cce627.jpeg)
参考资料
[1]http://dockone.io/article/394
[2]https://www.infoq.cn/article/the-evolution-of-distributed-systems/