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