`
阅读更多

1,微服务架构:没有明确的定义,它采用一组服务的方式来构建一个应用,服务独立部署在不同的进程中,不同服务通过一些轻量级交互机制来通信,如RPC,HTTP等,服务可独立扩展伸缩,每个服务定义了明确的边界,不同的服务甚至可以采用不同的编程语言来实现,由独立的团队维护。

2,微服务架构特征

  • 通过服务实现组件化:传统实现组件的方式是通过库,传统组件是和应用一起运行在进程中,组件的局部变化意味着整个应用的重新部署。通过服务实现组件,意味将应用拆散为一系列的服务运行在不同的进程中,那么单一服务的局部变化只需要重新部署对应的服务进程,另外将服务作为组件可以更明确的定义出组件的边界,因为服务之间的调用是跨进程的,清晰的边界和职责定义是设计时必须考虑的。
  • 按业务能力来划分服务与组织团队:传统开发方式中,工程师按技能专长分层为前端层,中间层,数据层。微服务架构的开发模式不同于传统方式,它将应用按业务能力划分为不同的服务,每个服务都要求在对应业务领域的全栈软件实现,从界面到数据存储到外部沟通协作等。
  • 服务即产品:传统的应用开发是基于项目模式,开发团队根据一堆功能列表开发出一个软件并交付客户,该软件应用就进入维护模式,由另一个维护团队负责,开发团队的职责结束。而微服务架构的倡导者提议避免这种项目模式,更倾向于让开发团队负责整个产品的全部生命周期。开发团队对软件在生产环境的运行负全部责任,让服务的开发者与服务的使用者形成每天的交流反馈,来自客户端的反馈有助于开发者提升服务的质量
  • 智能终端与哑管道:服务作为智能终端,所有的业务智能逻辑在服务内部处理,而服务的通信尽可能的轻量化,不添加任务额外的业务规则。
  • 去中心化:传统应用中倾向采用统一的技术平台来解决所有问题。微服务的架构意味着你可以针对不同的业务服务特征选择不同的技术平台,有针对性的解决具体的业务问题。
  • 基础设施自动化:单一进程的传统应用被拆分成一系统的多进程服务后,意味着开发,调度,测试,集成,监控,发布的复杂都会相应增大。必须要合适的自动化基础设施来支持微服务架构模式,否则开发,运维成本将大大增加。
  • Design for failure:服务独立于不同的进程,引入了额外的失败因素。任何时刻对服务的调用都可能因为服务方不可用导致失败,这要求服务的消费方需要优雅的处理此类错误。
  • 进化设计:一旦采用微服务架构模式,那么在服务需要变更时我们要特别小心,服务提供者的变更可能引发服务消费者的兼容性破坏,时刻谨记服务契约的兼容性。对于解耦服务消费者与服务提供方,伯斯塔尔法则特别适用:发送时要保守,接收时要开放。最小化传送必要的信息,接收时要最大限度的容忍信息的兼容性,多余的信息不认识可以忽略,而不应该拒绝或抛出错误。

3,微服务架构实战

    API Gateway:它是一个服务器,是进入系统的唯一节点,类似设计模式的Facade,它封装内部系统的架构,并且提供API给各个客户端。它负责请求转发,合成,协议转化。提供一个服务提供点使得移动客户端可以在一个请求中检索到最终的全部数据,API Gateway通过调用多个服务来处理一个请求并聚合多个服务的结果。

    微服务架构的进程间通信(IPC):    一对一交互模式:请求/响应;通知;请求/异步响应。一对多的交互模式:发布/订阅;发布/异步响应。

    服务发现:服务实例运行环境是动态变化的,实例网络地址是动态变化的,客户端为了访问服务必须使用服务发现机制。

    事件驱动的数据管理:每个服务都有自己私有的数据集,分布式管理的挑战是多服务之间维护业务交易一致性及如果在多服务环境中获取一致性数据。最佳解决办法是事件驱动架构:将数据库视为消息队列,交易日志挖掘和事件源。

    微服务部署:单主机单服务实例有两种模式单虚拟机单实例和单容器单实例。

4,六种微服务架构的设计模式

    聚合器微服务模式:聚合器调用多个服务实现应用程序所需的功能,它是一个更高层次的组合微服务,对检索到的数据增加业务逻辑后进一步发布成一个新的微服务。 

    代理微服务模式:联合器模式的变种,代理不聚合数据,仅仅委派请求,也可以进行数据转换工作。

    链式微服务模式:服务A接收到请求后与服务B通信,服务B会现服务C通信,所有服务都使用同步消息传递。在整个链式调用完成之前,客户端会一直阻塞。

    分支微服务模式:聚合模式的扩展,允许调用两个微服务链。

    数据共享微服务模式:部分微服务可以共享缓存和数据库存储。

    异步消息传递微服务模式:使用消息队列代替REST请求/响应同步的阻塞的模式。

分享到:
评论

相关推荐

    架构探险轻量级微服务架构(下册)

    资源名称:架构探险 轻量级微服务架构(下册)内容简介:《架构探险:轻量级微服务架构(下册)》将重点关注微服务基础设施方面,其中大部分内容涉及微服务运维相关技术。《架构探险:轻量级微服务架构(下册)》以...

    微服务架构治理 - 架构腐化之谜-Thoughtworks

    微服务架构治理 - 架构腐化之谜-Thoughtworks 微服务架构治理是指在微服务架构中,通过合理的设计、实施和管理来确保架构的健康度和可维护性。本文将讨论微服务架构治理的重要性、架构腐化的原因、保持架构健康度的...

    六种微服务架构的设计模式.pdf

    六种微服务架构的设计模式.pdf 微服务架构的设计模式是软件架构中的一种重要设计模式,它可以帮助开发者设计和实现更加灵活、可扩展和高效的微服务系统。在这篇文章中,我们将探讨六种常见的微服务架构设计模式:...

    美团点评微服务架构实践

    微服务架构的设计原则包括将应用划分成一系列小服务,每个服务可以围绕业务功能组织,可以独立开发、部署和扩展,并且服务治理、数据管理、基础设施自动化、容错和设计都是微服务架构中的关键部分。 OCTO是美团点评...

    1-1微服务架构基础知识.pdf

    微服务架构是一种面向服务的软件架构设计方法,它将一个庞大的单体应用分解为一组小的服务,每个服务运行在其独立的进程中,并且通过轻量级的通信机制进行交互,通常采用HTTP API。这种架构风格提倡的是一种去中心化...

    微服务架构的应用性能监控.pdf

    微服务架构的应用性能监控 微服务架构的应用性能监控是指在微服务架构下的应用系统中监控和优化性能的过程。微服务架构是指将一个大型应用程序拆分成多个小型、独立的服务,以提高系统的灵活性、可靠性和可扩展性。...

    微服务架构.ppt

    微服务架构.ppt 是关于微服务架构学习的一款非常好的ppt。

    最新“系统架构设计师”论文范文——论微服务架构及其应用.docx

    【系统架构设计师】论文主要探讨了微服务架构在构建一站式互联网大数据征信平台中的应用,文章首先介绍了背景,指出传统单体架构在面对快速变化的需求和大规模用户量时的不足,以此作为采用微服务架构的理由。...

    微服务介绍/微服务架构方案PPT

    ### 微服务架构方案知识点详解 #### 一、微服务架构概述 - **定义**: 微服务架构是一种设计思想,将应用程序分解为一组小型、独立的服务,这些服务围绕着特定的业务功能构建,并且能够独立部署、扩展和维护。每个...

    快手微服务架构体系实践共41页.pdf.zip

    【标题】:“快手微服务架构体系实践共41页.pdf.zip”揭示了快手公司在构建大规模、高可用的微服务架构方面的实践经验。这份资料详细介绍了快手如何通过微服务化改造,应对业务快速迭代与高并发挑战。 【描述】:这...

    《唯品会微服务架构演进之路.pdf》

    唯品会微服务架构演进之路 微服务架构是当前软件 industrie 中最流行的架构模式之一。唯品会微服务架构演进之路PDF文件中,详细介绍了唯品会在微服务架构方面的实践经验和解决方案。 微服务架构的演进 唯品会...

    微服务架构设计.doc

    微服务架构设计是一种将单一应用程序分解为一组小型、独立的服务的方法,每个服务都在自己的进程中运行,专注于完成特定的业务功能。这种设计模式旨在提高系统的可伸缩性、可维护性和可部署性。以下是对微服务架构...

    springcloud与docker微服务架构实战配套代码

    springcloud与docker微服务架构实战配套代码springcloud与docker微服务架构实战配套代码springcloud与docker微服务架构实战配套代码springcloud与docker微服务架构实战配套代码springcloud与docker微服务架构实战...

    微服务架构介绍.pdf

    微服务架构是一种设计大型应用程序的架构方法,它将应用程序分解成一系列小的、独立的服务,每个服务实现业务领域中的一个特定功能,并且通过轻量级的通信机制进行交互。微服务架构的介绍涉及多个方面的知识点,包括...

    经典Java微服务架构教程 微服务从开发到部署.pdf

    【Java微服务架构教程】本书深入探讨了Java微服务架构的开发和部署,适用于希望掌握微服务技术的Java开发者。作者李卫民整理了开源项目,并提供了完整的在线文档、源码和视频教程,方便读者全面学习。书中首先介绍了...

    微服务架构设计V1.pptx

    "微服务架构设计V1.pptx" 微服务架构设计是指将单块架构应用程序划分成多个小的服务,每个服务运行在其独立的进程中,服务之间互相协调、互相配合,为用户提供最终价值。微服务架构的定义是指一种架构模式,它提倡...

    Manning.Microservices.Patterns.2018.10.pdf 微服务架构设计模式(英文版)-有详细的书签目录

    《微服务架构设计模式》是由Chris Richardson所著的一本关于微服务架构的书籍,它深入探讨了在Java环境中应用微服务架构时遇到的各种设计模式,以及如何实现它们。本书不仅涵盖了微服务架构的基本理念,还提供了丰富...

Global site tag (gtag.js) - Google Analytics