微服务简介

时间:2024-10-10 14:53:23

文章目录

  • 微服务(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)进行通信。这些服务是围绕业务功能构建的。可以通过全自动部署机器独立部署。这