SOA 是一种设计方法,它通过提供服务向外提供一系列功能,服务之间通过网络调用,而非采用进程内调用的方式进行通信。SOA可软件的复用性,如多个终端共享一个以应用于庞大的单块应用程序,从而提高服务。SOA 更倾向于理论和概念的层面,关于服务的粒度定在哪个层级,服务如何落地,如何保证可用性等问题有待解决。我们所知软件的运行是离不开外部环境的,对于软件所依赖的环境,SOA涉及面较少。
微服务就在此情况下诞生,沿袭了SOA的基本概念。微服务将业务划分多个独立的服务并明确不同的责任,既保证了概念的清晰和自洽,又保证了系统的灵活性、伸缩性。面对杂乱不可靠的现实,又从实现上注重每个服务的自治性,也就是能独立部署,具备自动化、可观察、故障隔离、自动恢复等特性,由此提供高可用保障。
图1微服务与 SOA 的关系
如图1所示,微服务在原来SOA的基础上更进了一步,原来系统之间用SOA理念集成起来,但却没有定义每个系统具体什么样。微服务的特性决定了要对系统重新进行定义,系统要自治,要独立部署,要有隔离性,只能和别人用轻量级的通信方式,可以有自己专属的技术和数据。在系统内部要切成一个个微服务,每个微服务要具备的特性都要定义清楚,会比原来的 SOA 有更好的操作性。
标签:SOA,关系,服务,定义,系统,特性,软件 From: https://blog.51cto.com/u_15735635/5965952