SpringCloud(1)什么是微服务?

一.微服务的来源和它要实现的目的

        微服务的概念源于 Martin Fowler 于 2014 年 3 月 25 日写的一篇文章 Microservices(中文版翻译点击查看

        微服务架构模式的目的是将大型的、复杂的、长期运行的应用程序构建为一组相互配合的服务,每个服务都可以很容易得局部改良。 Micro 这个词意味着每个服务都应该足够小,但是,这里的小不能用代码量来比较,而应该是从业务逻辑上比较——符合 SRP 原则的才叫微服务。

关于微服务的一个形象表达:


X 轴:水平扩展,即在负载均衡服务器后增加多个运行实例

Z 轴:数据库的扩展,即分库分表

Y 轴:功能分解,即将不同职能的模块分成不同的服务

二.微服务与与单体应用的区别

        在了解微服务之前,我们先看看微服务(microservice)和单体应用(monolithic application)的区别。

        一个完整的单体应用一般为三个主要部分构成,客户端界面,服务端应用,数据库。服务端处理接收到的HTTP请求,执行业务逻辑,查询修改数据库里的数据,再将html视图输出给浏览器。他们三个部分构成一个独立的单元,所有处理请求的业务逻辑都在一个进程中。它可以进行横向扩展,通过负载均衡将多个应用部署到多台服务器上。单体应用是一种很自然很成功的架构,但是他也有让人感到有不方便的地方,将他部署到云上的时候需要整体部署,每当你变更程序的一小部分逻辑需要整体的构建和部署,这样就很难保持一个好的模块化结构,很难让一个模块的变更不影响到别的模块,扩展应用程序只能整体的扩展,而不能进行部分扩展。


图一.整体架构和微服务架构的区别

        这为微服务的出现奠定了基础,应用程序构建为一整套服务,每个服务可以独立部署和扩展,每个服务之间有明确的边界,每个服务可以使用不同的编程语言,不同的数据库,甚至于不同的团队去管理维护。


三.微服务架构的优点

1.复杂度可控

        在将应用分解的同时,规避了原本复杂度无止境的积累。每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。由于体积小、复杂度低,每个微服务可由一个小规模开发团队完全掌控,易于保持高可维护性和开发效率。

2. 独立部署

        由于微服务具备独立的运行进程,所以每个微服务也可以独立部署。当某个微服务发生变更时无需编译、部署整个应用。由微服务组成的应用相当于具备一系列可并行的发布流程,使得发布更加高效,同时降低对生产环境所造成的风险,最终缩短应用交付周期。

3.技术选型灵活: 

        微服务架构下,技术选型是去中心化的。每个团队可以根据自身服务的需求和行业发展的现状,自由选择最适合的技术栈。由于每个微服务相对简单,故需要对技术栈进行升级时所面临的风险就较低,甚至完全重构一个微服务也是可行的。

4.容错:

        当某一组建发生故障时,在单一进程的传统架构下,故障很有可能在进程内扩散,形成应用全局性的不可用。在微服务架构下,故障会被隔离在单个服务中。若设计良好,其他服务可通过重试、平稳退化等机制实现应用层面的容错。

5.扩展: 

        每个服务可以各自进行 x 扩展和 z 扩展,而且,每个服务可以根据自己的需要部署到合适的硬件服务器上。当应用的不同组件在扩展需求上存在差异时,微服务架构便体现出其灵活性,因为每个服务可以根据实际需求独立进行扩展。


参考博客:Wind Mt Spring Cloud(零):微服务的那些事儿

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,186评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,858评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,620评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,888评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,009评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,149评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,204评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,956评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,385评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,698评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,863评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,544评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,185评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,899评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,141评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,684评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,750评论 2 351

推荐阅读更多精彩内容

  • 微服务最近非常流行,各大互联网公司纷纷采用微服务架构体系,微服务架构模式正在为敏捷部署以及复杂企业应用实施提供巨大...
    Sting阅读 9,069评论 0 57
  • 原文链接:Introduction to Microservices 微服务介绍(本文) 构建微服务之使用API网...
    nonumber1989阅读 15,684评论 9 57
  • ——Martin Fowler[https://martinfowler.com/], James Lewis[h...
    Anor9阅读 2,388评论 0 2
  • 众所周知,唐僧师徒四人西天路上经历了九九八十一难,而女儿国一段就包含了其中两难,分别是“吃水遭毒”和“西梁国留婚”...
    大漠小兵阅读 1,050评论 0 0
  • 记得有一位作家说唯有经历深刻,才能写出生动的文字。有的病人真的是越深刻越平静。经历沧桑对医生是那么的信任。 一...
    懿一_c6a1阅读 278评论 0 0