有人说微服务就是把大饼切成小饼,但Martin Fowler说微服务不仅如此

微服务架构被越来越多的系统架构使用到,甚至很多组织在无意识的情况下,也或多或少地使用到了微服务架构中的一些概念。就像Martin Fowler所说的,微服务架构其实由来已久,它作为SOA的其中一种实现方式已经被广泛使用了。只是到了最近,才用“微服务” (Microservices) 这么一个概念为其“正名”而已。在阅读了Martin Fowler的相关文章后,我觉得Martin Fowler的关于微服务的一些观念在国内比较少的被提出、讨论,所以这篇文章主要想提取Martin Fowler针对微服务架构的一些独特的观点,供大家讨论、参考。

微服务 vs 单一服务

当我们提及微服务,不可避免的,我们会讨论和微服务对应的架构形式:单一服务 (Monolithic)。注意,微服务和单一服务架构并没有孰优孰劣之分,只是根据其不同特点,应用的场景有所不同(这将在后文进行进一步的讨论)。为了方便展开讨论,我们先弄清楚微服务和单一服务架构的概念以及区别。

  • 单一服务:把所有功能都集中在一个应用系统。在部署时,单一架构的应用以整体的方式进行部署,也就是说在进行集群时,也是以应用的整体进行集群。
  • 微服务:应用系统由一些列功能独立的小规模服务组成。这些服务相互关联、沟通,从而支持应用系统的业务功能开展。由于这些服务的独立性,不同服务可能是基于不同开发语言进行开发的,数据的储存也是基于不同的方案。部署时,由于服务的粒度小,提供了更强的灵活性。

微服务的基本特点

由于不同人对微服务有不同的定义,业界很难形成统一的观点。Martin Fowler简化了定义流程,通过提出微服务的9个特点,如果应用架构符合了这些特点,那么可以认为是为服务架构(这里需要注意的是真实世界中并没有非黑即白的定义,可能你的架构部分具备微服务的特点,那么可以认为其已经体现了微服务的思想)。微服务的9个特点大家可以查看Martin Fowler的原文(参考文献#1),下面我将一些值得注意的特点提出来供大家参考、讨论。

  • 围绕业务来组织人员

在传统的IT企业架构中,人员的组织一般是按照职能进行划分的,例如:前端开发、后端开发、DBA、BA、测试等。这种组织形式往往以项目的方式运行,也就是当项目开展时,项目团队由各个职能部门的人员组成,在短期内以项目的方式协同工作,交付产品。虽然项目方式可以有效的交付产品,但是由于项目的临时性,项目结束后,相关人员会回到职能部门中,其在项目的成果往往不会被主动的进行改进、总结。换句话说,项目的一些成果没能被有效的沉淀下来,可以被以后类似的项目复用。

而在微服务架构下,人员的组织是基于业务进行划分的,例如:某一个团队负责用户注册功能,某一团队负责的是订单功能。这种划分方式体现的一个要点是:you build, you run it,即:谁开发,谁负责到底。这种方式带来最大的好处是:由于团队只需要考虑自己的业务领域,所以团队可以在某一个业务上进行很深的积累,最大限度的提升某领域的效率、功能。

  • 白痴的中枢 与 聪明的端服务

微服务的其中一种实现方式是基于ESB (Exterprise Service Bus),ESB一般提供复杂的功能,例如:消息传输、路由、协调、转换、业务规划等。ESB方式可以将不同服务有效地进行相互协同,以满足业务的需求。但是其最大的问题是ESB会成为整个应用系统的瓶颈(即使采取集群的方式也易产生雪崩效果)。

因此,在微服务架构中提倡了另一种方式:将ESB中复杂的功能,转移到每一个服务中去,从而实现“白痴的中枢”配上“聪明的端服务”,以去处ESB单点的隐患。

  • 异构技术的高容忍性

在单一服务架构中,所有的功能都必须根据既定的技术框架进行开发,例如:Java 8、MySQL等。但是,其实每一个功能由于其不同的特点,可能其它技术会更有利于该功能的实现,例如:某功能对数据一致性没有太高的要求,但是数据量巨大,那么可能NoSQL比关系数据库更适合该功能。因此,单一服务的功能可能会受到较多的技术限制,而无法高效的满足业务的需求。

在微服务架构中,由于服务的独立性,其技术可以根据业务的具体特点来进行独立的选择。另外,由于微服务对异构技术的支持,应用系统可以很方便的引入成熟的技术解决方案,帮助提高系统的开发效率。

  • 自动化

虽然微服务有上述的许多优点,但是它引入比单一服架构多得多的复杂性,例如:一个应用的正常运行依赖于30个服务,当其中一个服务出现问题,那么整个应用也将出现问题。在微服务架构下,单靠人手、人脑已经很难支撑应用的运行。因此需要在部署、测试、监控几个方面进入自动化,在事前、事中控制由于微服务的复杂性带来的风险。

微服务就是SOA吗?

很多人认为SOA的主要核心就是ESB,所以所有应用都应该基于一个标准以帮助应用在ESB上进行通信。但是实际上SOA的核心是功能的合理模块化以及重用,从而可以根据业务的需求,通过模块间的组合快速适应业务的变化。而微服务,其实是实现SOA目标的一种方式,是SOA的一个子集。

服务的粒度

服务粒度的大小也是微服务讨论得比较多的一个问题。这个问题很难有一个绝对的答案,最好的答案应该就是适合你的企业就好。以下有两个标准可以帮你评判服务的粒度是否适合:

  • 服务是否可以被独立的替换而不影响系统其它功能?
  • 服务是否可以被独立升级而不影响系统其它功能?

什么情况适合使用微服务?

如上文所说,单一服务以及微服务并没有孰优孰劣,它们适应不同的场景以及需求,以下是一个针对单一服务以及微服务特点的总结:

使用微服务必要的条件

如果你要使用微服务,确保你已经具备了以下条件:

  • 快速添加计算能力:通过灵活的计算能力调配,最大化微服务的伸缩性
  • 服务监控能力:应对微服务间复杂的网状关系
  • 快速的服务部署能力:适应Devops文化

参考文献


pstrike 2018.05.10 于常州

【尊重版权:转载之前请先联系我】

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

推荐阅读更多精彩内容