微服务

一种开发应用所用的架构形式
微服务(英文名:Microservices),也称为微服务架构,[12]是指开发应用所用的一种架构形式。可将大型应用分解成多个独立的组件,其中每个组件都有各自的责任领域。[13][14]微服务与传统的单体式开发方式有很大的区别。[2]微服务中的每个独立组件都在自己的进程中运行,并通过轻量级的机制(通常是基于HTTP协议的RESTful API)进行通信和协作,以实现具体的业务功能和价值。根据需要,微服务可以采用不同的编程语言和数据存储技术,并在不同环境中,通过自动化的方式进行独立部署和扩缩,使服务之间的管理尽量简化。[13][15]
微服务是由传统的单体式开发发展而来的,[16]最早由Peter Rodgers(彼得·罗杰斯)在2005年提出,当时他把这种模式称为“Micro-Web-Service”。[5]2011年5月,在威尼斯举行的一个软件架构会议上构架师们首次提出“微服务”这个概念,用来描述一种他们共同的想法。[17]2014年,Martin Fowler(马丁·福勒)发表了一篇关于微服务的文章,这篇文章详细介绍了微服务架构的概念和特点,从而推广了这种软件架构风格。[15]之后,受数字化转型、客户导向和微服务架构本身的优势的驱动,微服务的市场价值持续增长。[18]
微服务的特点是灵活扩展、自动化管理、数据分离、弹性等,这些特点带来了开发和维护的便利,提高了团队的效率和灵活性,增强了系统的可用性容错性等。[19]微服务广泛应用于互联网、物联网、电商、金融等领域。[2][3][4]

发展历程

软件架构的发展经历了几个阶段,从单体架构、垂直架构、SOA架构到微服务架构。[16]