什么是微服务架构

  微服务架构最主要的两个特征:细粒度和独立,简单来讲微服务就是细粒度的独立的服务。这有什么好处呢?

  第一,细粒度就是每一个服务专注做好一件事情,每个服务完成一个单一任务。在功能不变的情况下,应用被分解为多个可管理的服务,很好的解决了复杂性问题。

  第二,独立开发,独立测试,独立部署,独立更新。开发者不再需要协调其它服务部署对本服务的影响。这种改变可以加快部署速度,快速的部署变化。因为是分布式的,微服务架构模式使得持续化部署成为可能。

  从架构的角度来讲,微服务架构是相当于过去的单体架构来看的。过去是单体架构,虽然做到了SOA面向服务了,但是这些服务都只是分了模块,没有成为独立的服务,他们都是访问统一的数据库。在微服务架构里面这些服务都是独立部署的,服务是独立开发、测试、变更。这些服务都有自己的数据,这是微服务架构。

  单体架构与微服务架构对比

  在单体系统架构下做一个变更修改,不得不把整个系统重新部署一遍,这个时间周期会很长,而且牵一发动全身。
  

  而微服务架构,每个服务都可以独立的变更和部署。从应用架构的发展来看,最早的CGI,到MVC,到SOA,再到MSA。MSA跟SOA相比新的特征是什么呢?一是独立部署、快速迭代、持续交付。过去的SOA里面每一个模块不是独立部署的。

  为什么一直强调独立部署很重要呢?

  首先,因为独立部署可以做到快速迭代。持续交付,永远的测试版,这个系统没有完成时,永远在改,因为服务只要有新的需求时就快速变更,哪些服务不用了,让它休眠就完了,这样的话就可以做到持续的交付。

  其次,独立部署可以做到只针对需要的部分进行扩展。比如说某一个功能用户大量在使用时,就把更多资源配给它。过去是整块的结构,只能基于整块进行扩展。现在当并发量很大时,只需要根据它的访问系统自动的把资源配给它。

  再次,独立部署拥有自己的数据。每个服务都拥有自己的数据,给数据治理也带来了新的要求,推动实现去中心化的服务治理。

  所以,单体架构更适合轻量级的简单应用。如果你用它来开发复杂应用,那真的会很糟糕。微服务架构模式则可以用来构建复杂应用。未来业务的敏捷一定要依赖于IT的敏捷,我们一直追求敏捷的IT:一个弹性可扩展的云计算与大数据基础平台(IaaS + PaaS),加上基于微服务架构的原生云应用(SaaS)开发,这已成为企业级IT的必然选择!

时间: 2024-10-09 18:41:53

什么是微服务架构的相关文章

用友iuap云运维平台支持基于K8s的微服务架构

什么是微服务架构? 微服务(MicroServices)架构是当前互联网业界的一个技术热点,业内各公司也都纷纷开展微服务化体系建设.微服务架构的本质,是用一些功能比较明确.业务比较精练的服务去解决更大.更实际的问题.该架构强调的一些准则:单一职责.协议轻量.进程隔离.数据分离.独立部署.按需伸缩. 什么是Kubernetes? Kubernetes是Google开源的容器集群管理系统,其提供应用部署.维护. 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能:

微服务架构

互联网保险O2O平台微服务架构设计 关于架构,笔者认为并不是越复杂越好,而是相反,简单就是硬道理也提现在这里.这也是微服务能够流行的原因,看看市场上曾经出现的服务架构:EJB.SCA.Dubbo等等,都比微服务先进,都比微服务功能完善,但它们都没有微服务这么深入民心,就是因为他们过于复杂.简单就是高科技,苹果手机据说专门有个团队研究如何能让用户更加简单的操作.大公司都是由小公司发展起来的,如果小公司在开始技术选型时感觉某个框架费时费力就不会选择,而小公司发展到大公司的过程,一般也伴随着系统不断优

深解微服务架构:从过去,到未来|架构(2015-07-15)

随着用户需求个性化.产品生命周期变短,微服务架构是未来软件软件架构朝着灵活性.扩展性.伸缩性以及高可用性发展的必然方向.同时,以Docker为代表的容器虚拟化技术的盛行,将大大降低微服务实施的成本,为微服务落地以及大规模使用提供了坚实的基础和保障. 微服务的诞生   微服务架构(Microservice Architect)是一种架构模式,它提倡将单块架构的应用划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟

.NET Core 实践:微服务架构的优点

微服务现在已经是各种互联网应用首选的云架构组件,无论是 BAT 还是 滴滴.美团 ,微服务都是重要的一环. 相对于微服务,传统应用架构有以下缺点: 1. 业务代码混杂,团队成员职责边界不清,团队协作体验不佳,开发效率低下. 传统应用架构中,各个业务模块代码都存在于同一个应用当中,各个业务模块之间交互逻辑复杂,代码统统混在一起,难免出现要去别人代码里改代码的情况 2. 代码耦合度高,日趋臃肿,难以重构,维护成本越来越高. 感受过被F12支配的恐惧吗? 3. 容错能力弱,单点故障引发全局崩溃. 4.

Spring Cloud微服务架构在互联网中应用

夜行侠老师录制的:Spring Cloud微服务架构在互联网中应用 由大象分享网出版:http://www.itjoin.org/course/detail/5934a58c0cf2159b39641f80夜行侠课程集合:http://www.xuetuwuyou.com/user/29 第1节.Springcloud介绍第2节.Eureka的使用第3节.Eureka集群第4节.restful请求第5节.restful请求负载均衡第6节.配置中心第7节.获取配置中心数据第8节.配置中心高可用第9

微服务架构(Microservice Architecture)

之前一段时间,有听部门架构说起接下来公司要使用微服务架构来研发系统,当时没怎么在意,因为是第一次听说微服务这个名词(果然无知者无畏啊):正好赶上五一假, 我自告奋勇的,接了编写微服务架构培训文档这个任务(也许因为我是文科生,文笔稍微好点).五一假期三天,基本都是在看资料,梳理思路以及编写接下来的培训文档中度过. 下面,就说说我这几天的一些收获吧:先说说资料来源吧:有架构给我的一些资料,以及自己百度和论坛.社区找来的一些资料,权当做一个总结式的简介... 目录如下: 一.微服务架构介绍 二.出现和

微服务架构——不是免费的午餐

当我開始了解<微服务架构>的时候,我发现里面的中文文章是相当的少,于是開始试着翻译一些文章,比方这一篇<微服务--不是免费的午餐>.这篇文章是在某次讨论结束后听到的,和之前相似的是这样的差别有点相似于之前说的微内核与宏内核的差别. 译文例如以下: 文章是由Contino公司的CTO,Benjamin Wootton写的.Contino是一家在伦敦的咨询公司,专注于DevOps和持续支付. Microservices are a style of software architect

微服务架构的设计和实践-培训感悟

这两天(4月8号,9号)我有幸参加了极客邦的培训课程-微服务架构的设计和实践,能够面对面倾听58架构师-孙玄的亲身授课,个人也是感到非常的荣幸.两天的时间,来回于广州和深圳,虽然不能说自己的技术有了一个质的提升,但至少也是一次很好的交流体现,这一趟不白走! 身为一个技术小白(虽然个人也有四年的开发经验,但大多的技术只是知其然而不知其所以然,而且接触面太狭隘),此次学习最明显的感受是,如果你只会写软件代码,了解与某种语言相关的语法,框架以及架构包括技术,那你肯定会"死的很惨".作为软件行

微服务架构下的数据一致性:可靠事件模式

主页:http://www.howardliu.cn/ 博客:微服务架构下的数据一致性:可靠事件模式 在<微服务架构下的数据一致性:概念及相关模式>中介绍了在微服务中实现数据一致性的三种方式,包括可靠事件模式.业务补偿模式.TCC模式.本文重点说一下可靠事件投递. 1. 可靠事件模式 可靠事件模式属于事件驱动架构,微服务完成操作后向消息代理发布事件,关联的微服务从消息代理订阅到该事件从而完成相应的业务操作,关键在于可靠事件投递和避免事件重复消费. 可靠事件投递有两个特性:1)每个服务原子性的完

图解微服务架构演进

前言 来自dubbo的用户手册中的一句话:随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 常规的垂直应用架构就相当于传统的那种,现阶段传统垂直架构改造的核心就是对应用做服务化改造,服务话改造使用的核心技术架构就是分布式服务框架. 其实这篇是概念上的总结,技术概念软文,纪录此文让自己更明白什么是微服务化架构. 服务化架构演进 请看下图,也来自dubbo的用户手册,图中恰恰少了微服务架构的图.