Web开发

首页 » 常识 » 常识 » 一文快速学习微服务vs单体架构
TUhjnbcbe - 2023/4/17 8:26:00

背景

在软件行业,微服务架构是一种重要的发展趋势。这一趋势,不仅仅是对企业内的IT信息系统建设,甚至在企业向数字化转型方面,都有着深远的影响。微服务架构与传统的单体软件架构代表着IT产业处理软件开发方式的一个根本性转变,Netflix、Google、亚马逊等组织均已成功采用这一转变。但是,与传统的单体架构相比,微服务的优势是什么呢?

单体架构

单体架构,是指将开发好的项目打成war包,然后发布到tomcat等容器中的应用。

什么是微服务?

微服务的概念源于年3月MartinFowler所写的一篇文章“Microservices”。

微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTfulAPI)。

微服务

介绍

微服务这个概念最早是在年5月威尼斯的一个软件架构会议上讨论并提出的,用于描述一些作为通用架构风格的设计原则。年3月在波兰克拉科夫举行的33rdDegreeConference大会上,Thoughtworks首席咨询师JamesLewis做了题为《Microservices-Java,theUnixWay》的演讲,这次演讲里James讨论了微服务的一些原则和特征,例如单一服务职责、自动扩展、DDD等等。微服务架构则是由FredGeorge在年的一次会议上提出来,在大会的演讲中他讲解了如何分拆服务以及如何利用MQ来进行服务间的解耦,这就是最早的微服务架构雏形。而后由MartinFowler发扬光大并且在年发表了一篇著名的微服务文章,这篇文章深入全面的讲解了什么是微服务架构。随后,微服务架构逐渐成为一种非常流行的架构模式,一大批的技术框架和文章涌现出来,越来越多的公司借鉴和使用微服务架构相关的技术。

架构特点

围绕业务功能进行组织(organizedaroundbusinesscapability),不再是以前的纵向切分,而改为按业务功能横向划分,一个微服务最好由一个小团队针对一个业务单元来构建。

做产品而非做项目(productnotproject),不再是做完一个个项目,交付后就完工了,而是做产品,从设计编码到产品运维,做到全过程掌控和负责,即自己构建,自己运维(youbuildit,yourunit)。

智能终端加简单通道(smartendpointsanddumbpipe),使用基于资源的API,将大量逻辑放在客户端,而服务器端则着重于提供资源,推荐基于Web而不是在Web之后做复杂逻辑(beoftheWeb,notbehindtheWeb)。

去中心化管理(decentralizedgovernance),自行其是,自我管理,不必局限在一个系统里,不必围绕着一个中心。

去中心化数据管理(decentralizeddatamanagement),只管理和维护自己的数据,相互之间互不直接访问彼此的数据,只通过API来存取数据。

基础设施自动化(infrastructureautomation),每个微服务应该

1
查看完整版本: 一文快速学习微服务vs单体架构