文章目录
- 微服务(micro services)简介
-
- 一 什么是微服务?
- 二 微服务这个概念的由来
- 三 微服务和单体式架构区别
-
- 3.1 单体式架构缺点
- 3.2 微服务架构的解决方案
- 3.3 微服务缺点
- 3.4 微服务优点
- 3.5 单体式和微服务对比
微服务(micro services)简介
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K0eUV4eu-1666247317656)(E:/golang开发学习/微服务/第10阶段-GO语言微服务项目/讲义/assets/)]
近几年,微服这个词闯入了我们的视线范围。在百度与谷歌中随便搜一搜也有几千万条的结果。那么,什么是微服务呢?微服务的概念是怎么产生的呢?
我们首先来了解一下Go语言与微服务的千丝万缕与来龙去脉。
一 什么是微服务?
服务拆分原则:高内聚低耦合
在介绍微服务时,首先得先理解什么是微服务,顾名思义,微服务得从两个方面去理解,什么是"微"、什么是"服务"?
微(micro)狭义来讲就是体积小,著名的"2 pizza 团队"很好的诠释了这一解释(2 pizza 团队最早是亚马逊 CEO Bezos提出来的,意思是说单个服务的设计,所有参与人从设计、开发、测试、运维所有人加起来 只需要2个披萨就够了 )。
服务(service)一定要区别于系统,服务一个或者一组相对较小且独立的功能单元,是用户可以感知最小功能集。
那么广义上来讲,微服务是一种分布式系统解决方案,推动细粒度服务的使用,这些服务协同工作。
二 微服务这个概念的由来
据说,早在19xx,非IT行业提出的概念,在威尼斯附近的软件架构师讨论会上,就有人提出了微服务架构设计的概念,用它来描述与会者所见的一种通用的架构设计风格。时隔一年之后,在同一个讨论会上,大家决定将这种架构设计风格用微服务架构来表示。
起初,对微服务的概念,没有一个明确的定义,大家只能从各自的角度说出了微服务的理解和看法。
在2014年3月,詹姆斯·刘易斯(James Lewis)与马丁·福勒(Martin Fowler)所发表的一篇博客中,总结了微服务架构设计的一些共同特点,这应该是一个对微服务比较全面的描述。
原文链接:/articles/
这篇文章中认为:“简而言之,微服务架构风格是将单个应用程序作为一组小型服务开发的方法,每个服务程序都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)进行通信。这些服务是围绕业务功能构建的。可以通过全自动部署机器独立部署。这