架构模式: 微服务的基底

上下文

当您开始开发应用程序时,您经常花费大量时间来建立处理跨领域问题的机制。跨领域关注的例子包括:

  • 外部化配置 - 包括外部服务(如数据库和消息代理)的凭据和网络位置
  • 日志记录 - 配置日志框架,例如log4j或logback
  • 运行状况检查 - 监视服务可以“ping”以确定应用程序运行状况的URL
  • 度量标准 - 可以深入了解应用程序正在执行的操作及其执行方式的度量标准
  • 分布式跟踪 - 具有代码的仪器服务,该代码为每个外部请求分配在服务之间传递的唯一标识符。

除了这些通用的跨领域问题之外,还存在特定于应用程序使用的技术的跨领域问题。使用基础结构服务(如数据库或消息代理)的应用程序需要样板配置才能执行此操作。例如,使用关系数据库的应用程序必须配置连接池。处理HTTP请求的Web应用程序也需要样板配置。

建立这些机制通常花费一两天,有时甚至更长。如果您要花费数月或数年时间开发单一应用程序,那么处理跨领域问题的前期投资是微不足道的。但是,如果您正在开发具有微服务架构的应用程序,情况就大不相同了。有数十或数百种服务。您将经常创建新服务,每个服务只需数天或数周即可开发。您无法花费几天时间来配置机制来处理跨领域问题。更糟糕的是,在微服务架构中,您必须处理其他交叉问题,包括服务注册和发现,以及可靠处理部分故障的断路器。

要点

  • 创建一个新的微服务应该快速而简单
  • 在创建微服务时,您必须处理横切关注点,例如外部配置,日志记录,运行状况检查,指标,服务注册和发现,断路器等。还存在针对微服务所使用的技术的跨领域问题。

解决方案

使用微服务机箱框架构建您的微服务,该框架处理跨领域问题

例子

微服务基础框架的示例:

  • Java

    • Spring Boot and Spring Cloud
    • Dropwizard
  • Go
    • Gizmo
    • Micro
    • Go kit

结果上下文

微服务机箱的主要优点是,您可以快速轻松地开始开发微服务。
您需要为要使用的每种编程语言/框架提供微服务机箱。这可能成为采用新编程语言或框架的障碍。

相关的模式

有以下相关模式:

  • 微服务 - 这种模式激发了对微服务基础框
  • 自注册的需求 - 微服务基础框架通常负责通过服务注册表注册
  • 服务客户端发现 - 微服务基础框架通常负责客户端服务发现
  • Circuit Breaker  -微服务基础框架可能实现这种模式
  • 分布式跟踪 - 微服务基础框架实现跟踪

转载于:https://www.cnblogs.com/paxlyf/p/11289168.html

架构模式: 微服务的基底相关推荐

  1. 漫谈单体架构与微服务架构(上):单体架构

    最近微服务架构特别火爆,就跟人工智能.区块链一样,软件架构设计如果不提微服务,感觉就像是与世界先进的架构风格和开发技术脱了节似的,各方各面都无法彰显高大上的气质. 本来再打算使用一套系列文章来讨论微服 ...

  2. 分布式与微服务——Iaas,Paas和Saas、单体应用和缺点、微服务概念、传统 分布式 SOA 架构与微服务架构的区别、微服务实战、什么是RPC、CAP定理和BASE理论、唯一ID生成、实现分布式

    文章目录 1-什么是Iaas,Paas和Saas 一 IaaS基础设施服务 二 paas平台即服务 三saas软件即服务 四 总结 2-单体应用和缺点 一 单体应用 二 单体应用的缺陷 3-微服务概念 ...

  3. 【架构】分布式服务架构与微服务架构

    文章目录 0)服务相关架构的演变 *关于面向对象.面向组件.面向服务 1)面向服务架构(SOA) 1.1 什么是面向服务架构(SOA)? 1.2 为什么需要SOA? 1.3 SOA 的特征 1.4 S ...

  4. 【微服务架构】微服务设计模式

    这是微服务架构系列文章的第 3 篇 高可用性.可扩展性.故障恢复能力和性能是微服务的特征.您可以使用微服务架构模式来构建微服务应用程序,从而降低微服务失败的风险. 模式分为三层: 应用模式 应用程序模 ...

  5. SOA架构和微服务架构的区别(转载)

    文章目录 1.SOA架构和微服务架构的区别 2.ESB和微服务API网关 1.ESB(企业服务总线) 2.API网关: 3.SOA架构特点: 4.微服务架构特点: 1.通过服务实现组件化 2.按业务能 ...

  6. 谈谈SOA架构和微服务,以及两者的区别区别

    众所周知,任何架构都是一步步演变而来的.没有最好的架构,只有最合适的架构. 先来看看第一代单体应用,我想这个大家也是很熟悉.大部分人入门也是从单体应用开始的. 第一代单体应用架构 这里放一个图,图中可 ...

  7. 单体应用、SOA架构、微服务架构的对比

    目录 前言: 单体架构 SOA架构 微服务架构 前言: 随着近年来云技术的发展,越来越多的用户选择使用云技术来代替传统的IT基础设施.在云技术发展的早期,业界的关注点集中在虚拟化.分布式.存储等laa ...

  8. SpringCloud学习笔记(二):微服务概述、微服务和微服务架构、微服务优缺点、微服务技术栈有哪些、SpringCloud是什么...

    从技术维度理解: 微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底 地去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事, 从技术角度看就是一种小而独立的处理过程,类 ...

  9. 单体架构-->SOA架构-->微服务架构

    上诉架构图采用了分层架构,按照调用顺序,从上到下为表示层.业务层.数据访问(DAO)层.DB层.表示层负责用户体验,业务层负责业务逻辑,包括电影.订单和用户三个模块.数据访问层负责DB层的数据存取,实 ...

  10. 【微服务架构】微服务与SOA架构(3)

    前文: [微服务架构]微服务与SOA架构(1) [微服务架构]微服务与SOA架构(2) 比较架构特性 组件(component)是软件中的一个单位,具有定义良好的接口.定义良好的角色/责任集合.组件是 ...

最新文章

  1. Netapp存储基础之WAFL, NVRAM, RAID, SnapShot
  2. XDC约束技巧——CDC篇
  3. Linux 设备 eth0 似乎不存在, 初始化操作将被延迟
  4. 【数据结构与算法】之线性表的应用和操作
  5. Hadoop初级之Hadoop基本概念与应用前景
  6. 岛屿类问题的广度优先深度优先双解法(Leetcode题解-Python语言)
  7. osgi简介_OSGi:简介
  8. python单元测试mock_python3的单元测试模块mock与性能测试模块cProfile
  9. 腾讯IVWEB前端工程化工具feflow思考与实践
  10. Pyhton基础篇(1)-第一个Pyhton程序(已更新)
  11. opencv函数之saturate_cast(防止溢出)
  12. sas导入txt出现中文乱码解决方案
  13. 503错误的原因和解决方法
  14. 草稿草稿草稿22.10.9 “yuyu“ IO进程线程
  15. html360全景图原理,通过HTML5 Canvas实现360度全景图
  16. java partial class_easymock教程-partial class mocking
  17. 盛迈坤电商:店铺推广的技巧分享
  18. Vue2.0基本用法之组件的注册和传值(父子props,插槽,$emit)和学写购物车
  19. c语言编程TLC2543AD采集,基于tlc2543的电压表c语言程序
  20. MySQL5.7找到data文件夹

热门文章

  1. 紧急!Log4j2 再再爆雷:刚升级,又连爆 “核弹级” 远程数据泄露 ! v2.17.0 横空出世。。。...
  2. 卧槽!“饿了么”把“饿了吗”告了,网友:判决结果没想到~
  3. SpringBoot2.x 官方墙裂推荐的缓存框架,竟然不是Redis!
  4. GitHub新神器,宇宙第一编辑器--VS Code!危
  5. 这款中间件支持多线程,居然吊打牛B的 Redis!
  6. 中移动、中联通、中电信取消网间结算政策:实行对等互联,互不结算
  7. 运维必读:避免故障、拒绝背锅的 10 大原则!
  8. Linux 运维工程师学习成长路线上要经历哪四个阶段?
  9. netty与socket对比_Netty之WebSocket和四种IO介绍
  10. 工作几年只会增删改查怎么了,大神们都是从第一行代码开始的!