微服务 Microservice

来源:互联网 发布:花生壳免费域名绑定ip 编辑:程序博客网 时间:2024/05/18 15:53

【前言】

        这段时间加入公司的研究小组,为项目技术定型做研究,涉及到了微服务和springcloud的知识。璐小编期间查阅了很多参考资料,自己也对参考资料做了一些小总结,希望对读者了解认识微服务有所帮助。

        本文参考文章:微服务(Microservice)那点事

【微服务】

         微服务并不是最近出现的,已经火了好几年了。微服务这个概念出自2014年3月Martin Fowler所写的一篇文章。微服务架构的基础框架有我最近开始了解的SpringCloud,也有出自阿里系的Dubbo。

         先来看一张有关微服务的的思维导图,本文简单从概念,联系,优点来简单了解微服务。

          概念

         微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。                      微服务的目的是有效的拆分应用,实现敏捷开发和部署 。

          Martin给出的官方定义

         1. 一些列的独立的服务共同组成系统
         2. 单独部署,跑在自己的进程里
         3. 每个服务为独立的业务开发
         4. 分布式的管理
         

         标准

         1.分布式服务组成的系统
         2.按照业务而不是技术来划分组织
         3.做有生命的产品而不是项目
         4.Smart endpoints and dumb pipes(原文作者的理解是强服务个体和弱通信)
         5.自动化运维(DevOps)
         6.容错
         7.快速演化

         联系

         Microservice是SOA的传承,但一个最本质的区别就在于Smart endpoints and dumb pipes,或者说是真正的分布式的、去中心化的。Smart endpoints and dumb pipes本质就是去ESB,把所有的“思考”逻辑包括路由、消息解析等放在服务内部(Smart endpoints),去掉一个大一统的ESB,服务间轻(dumb pipes)通信,是比SOA更彻底的拆分。

         ESB 拓展:

         企业服务总线(EnterpriseServiceBus,ESB)从面向服务体系架构(Service-OrientedArchitecture,SOA)发展而来,是传统中间件技术与XML、Web服务等技术结合的产物。
         ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。ESB采用了“总线”这样一种模式来管理和简化应用之间的集成拓扑结构,以广为接受的开放标准为基础来支持应用之间在消息、事件和服务级别上动态的互连互通,是一种在松散耦合的服务和应用之间标准的集成方式。它可以作用于:
         ①面向服务的架构—分布式的应用由可重用的服务组成;
         ②面向消息的架构—应用之间通过ESB发送和接受消息;
         ③事件驱动的架构—应用之间异步地产生和接收消息。


         优点

         1.微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源。这是因为它们通过扩展组件来处理功能瓶颈问题。这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个完整的应用程序的全新迭代。最终的结果是有更多的资源可以提供给其它任务。
         2.微服务应用程序的另一个好处是,它们更快且更容易更新。当开发者对一个传统的单体应用程序进行变更时,他们必须做详细的QA测试(产品测试),以确保变更不会影响其他特性或功能。但有了微服务,开发者可以更新应用程序的单个组件,而不会影响其他的部分。测试微服务应用程序仍然是必需的,但它更容易识别和隔离问题,从而加快开发速度并支持DevOps和持续应用程序开发。  
         3.第三个好处是,微服务架构有助于新兴的云服务,如事件驱动计算。类似AWS Lambda这样的功能让开发人员能够编写代码处于休眠状态,直到应用程序事件触发。事件处理时才需要使用计算资源,而企业只需要为每次事件计算实例支付,而不是固定数目的计算实例支付。
         
         一般提到微服务都离不开DevOps和Docker,理解微服务架构是核心,devops和docker是工具,是手段。看官有兴趣深入研究微服务可不能少了它们俩。参考原文中有关微服务的实践原理写的很赞,看官不容错过。

☆扩展文章:就写本篇博客期间又看到的几篇文章
华为内部如何实施微服务架构?基本就靠这5大原则
单体应用与微服务优缺点辨析(原英文链接☞)Microservices, Monoliths, and NoOps
究竟什么是微服务架构?

【小结】

         接触一个对于自己来说“新”的技术是一件及紧张又兴奋的事情,多一点了解多一点认识,都在帮助我们完善自己的知识网。Keep going~


0 0
原创粉丝点击