写点什么

什么是微服务?与 SOA 有什么区别?

作者:雨果
  • 2022 年 9 月 22 日
    北京
  • 本文字数:666 字

    阅读完需:约 2 分钟

什么是微服务?与SOA有什么区别?

微服务,英文为 Microservices,最早由 Martin Fowler 与 James Lewis 于 2014 年共同提出的。先来看看维基百科(Wikipedia)对微服务的定义。


微服务一种软件开发技术,面向服务的体系结构(SOA)架构样式的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供更优质的业务价值。


微服务是一种软件架构风格,复杂的应用程序由语言无关的 API、相互通信的小型独立服务进程组成。这些服务是小型构建模块,高度解耦,专注于完成一项小任务,是一种便捷的模块化系统构建方法。


从概念上来说,有专家曾经质疑微服务就是 SOA,也有一种说法,把微服务叫成轻型通道(Lightway)的 SOA。不过如今,被广泛接受的看法是,微服务是 SOA 的一种传承。


Martin Flower 将微服务架构的服务通信理念称为“强服务个体和弱通信”(Smart endpoints anddumb pipes)。微服务的本质是分布式的、去中心化的和去 ESB 的,把所有的“思考”逻辑包括路由、消息解析等放在服务内部(Smart endpoints),去掉一个大一统的 ESB,服务间轻(dumb pipes)通信,是比 SOA 更彻底的拆分。


为方便大家理解,编者拆解一下 Martin Fowler 与 James Lewis 两位对微服务的定义如下:


1,微服务指的就是独立的、微小的服务;


2,希望将单个应用拆分成多个独立的、微小的服务;


3,每个微服务程序运行在独立的进程中,互不干扰;


4,每个微服务之间通过轻量协议通信,如 HTTP 协议;


5,每个微服务互相协作配合,为用户提供业务价值;


6,每个微服务都通过全自动部署机制独立部署;


7,每个微服务可以采用不同的语言、框架、工具 独立开发、测试、部署、存储及运维等。

用户头像

雨果

关注

全球领先的DaaS厂商,构建下一代数据中台 2020.06.29 加入

500强集团中已有30多家选用;支持元数据管理,数据治理,数据开发,数据服务化,数据市场等功能; 免费下载试用官网地址:http://www.maicongs.com/#/home/probation

评论

发布
暂无评论
什么是微服务?与SOA有什么区别?_微服务_雨果_InfoQ写作社区