一.微服务发展史

目录

1.1 什么是微服务

1.2 从单体架构到分布式架构的演进

1.2.1⬇️ 单体架构

1.2.2⬇️ 集群及垂直化(垂直应用架构)

1.2.3⬇️ SOA 面向服务架构

1.2.4▶️ 微服务架构

1. 概念

2. SOA和微服务的区别

1.3 微服务架构的优点

1.4微服务架构图


1.1 什么是微服务

微服务文档原文链接

微服务文档译文链接

2014年,微服务的概念传入中国, 微服务架构是一种架构模式(架构风格),它将一个单体架构的应用按照业务划分为一个个的独立运行的程序,也就是服务,它们之间通过HTTP协议进行通信,可以根据实际业务采用不同的编程语言和存储技术(如:MySql,SqlServcer),自动化部署减少人为控制,降低出错概率

1.2 从单体架构到分布式架构的演进

1.2.1⬇️ 单体架构

简单来讲,单体架构就是将应用程序的所有功能都打包成一个独立的jar包或者war包,当网站流量很小时, 只需一个应用,将所有功能部署到一起, 以减少部署节点和成本

特点:

  • 所有的功能集成在一个项目工程中;
  • 所有的功能打一个jar包或者war包就可以直接部署到服务器
  • 应用和数据分开部署
  • 通过部署应用集群和数据库集群来提高系统的性能

1.2.2⬇️ 集群及垂直化(垂直应用架构)

随着业务场景越来越复杂,war包中的代码量持续上升,这也会伴随着业务代码之间耦合度越来越高,后期的代码维护和版本发布涉及的测试和上线也会很困难.

因此,我们将一个应用拆分成几个互不相干的应用来提升效率

    1. 通过横向增加服务器,把单台机器变成多台机器的集群
    2. 按照业务的垂直领域进行拆分,减少业务的耦合度,以及降低单个war包带来的伸缩性困难问题

1.2.3⬇️ SOA 面向服务架构

当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心。当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。

1.2.4▶️ 微服务架构

1. 概念

微服务是一种架构风格,架构就是为了解耦,实际使用的是分布式系统开发,一个大型的复杂软件应用,由一个或多个微服务组成.系统中的各个微服务可被独立部署,各个微服务之间是松耦合的.每个微服务仅关注完成一件任务并很好的完成该任务.

从名字来看,面向服务(SOA)和微服务本质上都是服务化思想的一种体现,如果SOA是面向服务开发思想的雏形,那么微服务就是针对可重用业务服务的更进一步优化,我们可以把SOA看成微服务的超集,也就是多个微服务可以组成一个SOA服务

用一句话来总结,微服务是SOA发展出来的产物,它是一种比较现代化的细粒度的SOA实现方式

2. SOA和微服务的区别

由于SOA和微服务关注点不一样,造成了这两者有非常大的区别

  • SOA关注的是服务的重用性及解决信息孤岛问题
  • 微服务关注的是解耦,虽然解耦和可重用性从特定角度来看是一样的,但本质上还是有区别,解耦是降低业务之间的耦合度,而重用性关注的是服务的复用
  • 微服务会更多关注在DevOps的持续交付上,因为服务粒度细化之后使得开发运维更加重要,因此微服务与容器化技术的结合更加紧密

如何更好的理解两者间的区别呢,可以看看这个小故事

话说1979年,又是一个春天,莆田乡下的赤脚医生吴大牛被改革的春风吹的心潮澎湃,说干就干,吴大牛趁着夜色朦胧找大队支书汇报了汇报思想,第二天就承包了村卫生室,开启了自己的在医疗圈的传奇历程。
乡村诊所大家都知道,没什么复杂的东东,房子只有一间,一个大柜台中间隔开,一半是诊疗兼候诊区,一半是药房,看病就直接找医生,如果前面有人就自己找个位子坐下,排队等一会,秩序倒也井然,看完病了医生直接给抓药,然后下一个继续,也不需要护士和药剂师,吴大牛一个人全部包办。
辛辛苦苦忙碌了十年,时间来到了八九年,又是一个春天,昔日的单身汉吴大牛已成为十里八乡的知名人物,媳妇娶上了不说,家里还增加了一对双胞胎儿子,二层的小洋房也甚是气派。可是也有烦心事,尽管乡村诊所扩大到了两间,媳妇还偶尔能去帮帮忙,但是医生还是只有自己一个,天天从早忙到晚挣的都是一份钱,想多挣点怎么办?吴大牛日思夜想,还真给他想出来一招,怎么办,扩大规模,多招几个医生一起干。原来吴大牛只能治头疼脑热和跌打损伤,现在新招了一个医科大学的毕业生刘小明专治感冒发烧,又从邻村请来了老大夫李阿花专治妇科病,现在一个普通的小诊所就变成了有三个独立科室加一个公共药房(吴大牛媳妇负责)的小医院了,吴大牛是外科主任兼院长,收入那可比之前翻了三番。人逢喜事精神爽,大牛院长请县里的书法名家为新医院书写了牌匾--“博爱医院”,挑了一个黄道吉日正式挂了上去。
一晃十年过去了,又是一个春天,吴大牛的博爱医院已经发展到了内科外科妇科五官科骨科生殖科六个科室,每个科室3到5名医生不等,也耗费巨资购进了血液化验B超等先进仪器,大牛院长也早已脱离了医疗一线,成为了专职的管理者,但是医院的大事小事大家都找他,就这三十多号员工搞的他每天是焦头烂额,想再扩大规模实在是有心无力了。要说还是大学生有水平,老部下刘小明给大牛院长献了一计,把各个科室独立出去,让各个科室主任自己管理,大牛院长只管科室之间的协调和医院发展的大事,这样既能调动基层的积极性,又能把大牛院长解放出来扩大生产抓大事谋大事,岂不妙哉?就这样,博爱医院的新一轮改革轰轰烈烈的展开了。
又是一个十年,又是一个春天,大牛院长已成为本地知名的企业家,博爱医院也发展到了二十三个科室数百名员工,发展中也出现了新问题,由于各个科室独立挂号、收费、化验,有的科室整天忙忙碌碌效益好,有的科室就相对平庸些,连分到的各种检查仪器都不能满负荷运行,整个医院养了不少闲人。这时候大牛院长视野也开阔了,请来了管理专家进行了顶层设计,把原来分散到各个科室的非核心服务全部收归集中管理,把原来二十三个挂号窗口整合为十个,二十三个收费窗口整合为八个,集中布设在一楼大厅为全院服务,还把分散在各个科室的检查仪器集中起来成立独立的检验科,也为全院服务,这样人人有活干,整个医院的服务能力又上了一个新台阶,这轮改革后博爱医院通过了各级部门的鉴定成为了远近驰名的三甲医院,吴大牛也摇身一变成为了博爱集团的CEO兼董事长,下一步就准备IPO上市了。
说到这里大家可能有点糊涂,这个跟微服务有嘛关系?大牛诊所的1.0阶段就相当于软件开发的单体结构,一个程序员打天下,从头编到尾,很难做大做强。大牛诊所的2.0阶段就相当于软件开发的垂直结构,各科室按照业务划分,很容易横向扩展。博爱医院的1.0阶段就相当于软件开发的SOA结构,除了药房(数据库)外各个服务独立提供(科室主任负责),但需要大牛院长(ESB总线)来协调。博爱医院的2.0阶段就相当于软件开发的微服务结构,公共服务院内共享,科室主任管理功能弱化(只管医生业务),优点是扩容方便,哪个部门缺人直接加,不用看上下游,资源利用率高,人员和设备效率高。

1.3 微服务架构的优点

1.4微服务架构图

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
分布式和微服务是两种不同的软件架构模式,用于构建大规模、可扩展和可维护的应用程序。它们有一些相似之处,但也有一些关键的区别。 分布式系统是由多个独立的计算机节点组成的系统,这些节点通过网络进行通信和协调,共同完成一个任务。每个节点可以独立运行,并且可以通过消息传递或远程过程调用等方式进行通信。分布式系统的目标是将一个大型任务分解为多个小任务,并在多个节点上并行执行,以提高性能和可靠性。 微服务是一种将应用程序拆分为一组小型、独立部署的服务的架构风格。每个微服务都是一个独立的、自治的服务单元,可以独立开发、部署和扩展。微服务之间通过轻量级的通信机制(如HTTP或消息队列)进行通信。微服务架构的目标是提高应用程序的可维护性、可扩展性和灵活性。 下面是它们之间的一些区别: 1. 复杂性:分布式系统通常更加复杂,因为需要处理节点之间的通信和协调。微服务架构通过将应用程序拆分为小型服务来降低复杂性,每个服务都有自己的职责和边界。 2. 独立性:微服务是独立部署和扩展的,每个服务可以独立开发和部署。分布式系统中的节点通常是紧密耦合的,它们需要共享状态和资源。 3. 通信方式:分布式系统通常使用底层的通信机制,如消息传递或远程过程调用。微服务使用轻量级的通信机制,如HTTP或消息队列。 4. 可伸缩性:微服务架构更容易实现可伸缩性,因为每个服务可以独立扩展。分布式系统的可伸缩性可能更具挑战性,因为需要考虑节点之间的通信和协调。 5. 故障隔离:微服务架构中的故障通常只会影响单个服务,而不会影响整个应用程序。分布式系统中的故障可能会影响整个系统的可用性。 6. 开发团队:微服务架构适合大型开发团队,因为每个服务可以由不同的团队负责开发和维护。分布式系统可能需要更多的协调和沟通,适合较小的开发团队。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值