微服务概述

一。微服务

微服务是一种更细粒度的SOA架构,用于建立分布式软件系统(主要是分布式计算),可以解决单体应用规模增加时所带来的问题。微服务是一种软件架构,并没有约束要用哪个技术或者绑定在哪个平台。如果细到代码层面是分层,细到工程方面是模块化,细到应用层面是服务拆分(微服务,SOA)。微服务不只针对于Java,PHP,NodeJS都可以做,一个单体应用程序把所有的功能放在一个单一进程中,并且通过在多个服务器上复制这个单体进行扩展。一个微服务架构把每个功能元素放进一个独立的服务中,并且通过跨服务器分发这些服务进行扩展,只在需要时才复制。

二。优劣势

开发,单体应用开发的好处是由于没有拆分,都放在一起,好找,服务调用简单。微服务的拓扑结构会异常复杂,从点状到环状到星状。
稳定,远程服务和进程服务的调用,单一进程方法的调用稳定性要高于远程服务,远程反序列化和网络的不稳定,因为不是同一个进程里面的,比较消耗性能。
部署,单一应用部署简单,中心化,耦合度太高,学习成本增高,伸缩性差,持续交付的能力小,开发和维护成本会越来越高。微服务一个应用会拆分成几个应用。小规模用单体,大规模用微服务。

三。单体应用,SOA,微服务的比较

单体应用和微服务的比较
微服务概述

面向服务架构(SOA)和微服务的比较
共同点:面向服务,松耦合,模块化,分布式计算,平台无关性(rest用的是http协议,http协议是文本协议,只要做文本解析即可。计算机里面只有二进制,没有文本的概念,二进制加上编码才会有文本。Rest可以是json,xml,html,json结构较简单,所以大多数人都在用,rest是一种风格,比如restful)
不同点:原子性:SOA再拆分就变成了微服务,微服务比SOA更加具有原子性;领域驱动设计:DDD,微服务更讲究;开发运维体系:DevOps。

上一篇:报错:Unknown lifecycle phase mybatis-generator-generate
下一篇:SpringWebMVC