您好,欢迎您来到我的个人博客!
柳正利的个人博客
文章内容

浅谈微服务——概念、特点及应用场景

0
发布时间:『 2018-04-28 23:05』  博客类别:微服务  阅读(915) 评论(0)

1 什么是微服务?

  微服务这一概念和其他许多的计算的概念一样,并不是一个新的的东西,早在2010之前就被硅谷的计算机工程师们提了出来,但是由于当时云服务器技术还不成熟,所以微服务这一概念并没有得到大规模的实施和推广。

  微服务最早由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API,这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管理。

u=3427937072,670833484&fm=173&s=DAB3AF444C53F9CE46B41A53030090FE&w=640&h=640&img.jpeg

  微服务是一种构建软件的架构和方法。在微服务中,应用被拆分成最小的组件,并彼此独立。不同于将所有组件内置于一个架构中的传统单体式应用构建方法,在微服务架构中,所有部分相互独立,通过合作来完成相同的任务。其中的每一个组件或流程都是微服务。此种软件开发方法强调细粒度、轻量化,力求在多个应用中共享相似的流程。

鍥剧墖1.png

微服务与SOA的区别:

  1.  微服务只是一种为经过良好架构设计的SOA解决方案,是面向服务的交付方案。

  2. 微服务更趋向于以自治的方式产生价值。 

  3. 微服务与敏捷开发的思想高度结合在一起,服务的定义更加清晰,同时减少了企业ESB开发的复杂性。

  4. 微服务是SOA思想的一种提炼!

  5. SOA是重ESB,微服务是轻网关。

2 为什么需要微服务

  在传统的IT行业软件大多都是各种独立系统的堆砌,这些系统的问题总结来说就是扩展性差,可靠性不高,维护成本高。到后面引入了SOA服务化,但是,由于 SOA 早期均使用了总线模式,这种总线模式是与某种技术栈强绑定的,比如:J2EE。这导致很多企业的遗留系统很难对接,切换时间太长,成本太高,新系统稳定性的收敛也需要一些时间。最终 SOA 看起来很美,但却成为了企业级奢侈品,中小公司都望而生畏。


3 微服务的优缺点

微服务的优点

  • 每个微服务都很小,这样能聚焦一个指定的业务功能或业务需求。

  • 微服务能够被小团队单独开发,这个小团队是2到5人的开发人员组成。

  • 微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。

  • 微服务能使用不同的语言开发。

  • 微服务允许容易且灵活的方式集成自动部署,通过持续集成工具,如Jenkins, Hudson, bamboo 。

  • 一个团队的新成员能够更快投入生产。

  • 微服务易于被一个开发人员理解,修改和维护,这样小团队能够更关注自己的工作成果。无需通过合作才能体现价值。

  • 微服务允许你利用融合最新技术。

  • 微服务只是业务逻辑的代码,不会和HTML,CSS 或其他界面组件混合。

  • 微服务能够即时被要求扩展。

  • 微服务能部署中低端配置的服务器上。

  • 易于和第三方集成。

  • 每个微服务都有自己的存储能力,可以有自己的数据库。也可以有统一数据库。

微服务的缺点:

  • 微服务架构可能带来过多的操作。

  • 需要DevOps技巧 (http://en.wikipedia.org/wiki/DevOps).

  • 可能双倍的努力。

  • 分布式系统可能复杂难以管理。

  • 因为分布部署跟踪问题难。

  • 当服务数量增加,管理复杂性增加。


4 应用场景


  微服务并不是一个单独兴起的概念,其在本质上还是在传统服务架构上进行演进的一个过程。

  微服务和其他架构不同的地方在于在过去的软件架构中,服务往往作为一个整体来为统一的目标提供业务上的支持,但是微服务不同,微服务是通过API模式进行,所以微服务更加偏近于编程的后端部分。

  而且微服务可以将业务进行拆分,这样在设计很多细节的问题的时候,服务和服务之间的耦合度会非常的小,每个服务都能实现自动测试,自动治理,自动运维。使得计算机后端的业务能力得到飞速的提升。


 案例 拆分单块应用结构

鍥剧墖2.jpg



对于一个单块系统,往往首先要从数据库入手进行拆分,规划好哪些  是财务代码的表,哪些是客户代码的表,将二者进行分离。

这时单块系统的应用结构并没有拆分,这还需要我们在进行设计单块系统的时候,客户代表和财务代码的表字段不能混在一起,要设计成不同的表才能方便将来拆分,虽然系统是在一起的,但是却为未来作了拆分准备。

最后将应用系统拆分独立布署,这个过程就结束了。



关键字:   微服务     SOA  
声明:本站部分资源来源于互联网,如果侵犯了您的权利,请来信告知,我们将在24小时以内删除. 联系邮箱:zhengli_liu@126.com
Powered by liuzhengli.com 豫ICP备18011046号
Copyright © 2018 liuzhengli.com All rights reserved.