微服务架构的设计理念便是:各个服务之间隔离、自治、独立部署、异步通信等等,而在开发过程中我们会遇到一些业务需要对这些独立的服务进行组合,下面介绍的是几种常用的聚合方式、使用路由网关zuul聚合服务的实现。

微服务6种常用设计模式

1、代理设计模式:

根据业务的需要选择调用后端的某些服务,在返回客服端之前,代理可以对输出进行加工,这是最简单的一种服务组合模式。

如图:

这种模式的典型案列是:平滑的系统迁移。

2、聚合设计模式

根据业务流程处理的需要,以一定的顺序调用依赖的多个微服务,对依赖的微服务返回的数据惊醒组合、加工和转换,最后以一定的形式返回给使用方。

聚合服务本身可以有自己的数据存储,

案例:电商前台,如图:

3、链条设计模式

类似一个工作流,最前面的服务1负责接受请求和响应使用方,串联服务后再与服务1交互,随后服务1与服务2交互,最后,从服务2产生的结果经过服务1和串联服务逐个处理后返回给使用方。

串联模式之间的调用通常使用同步的restful风格的远程嗲用实现,注意,这种模式采用的是同步调用方式,在串联服务没有完成并返回之前,所有服务都会阻塞和等待。

案例:如图

4、聚合链条设计模式

是服务代理模式、聚合模式和串联模式相结合的产物。

分支服务可以拥有自己的数据库存储,调用多个后端服务或者服务串联链,然后将结果进行组合处理再返回给客户端。也可以使用代理模式,简单第调用后端的服务或者服务链,然后将数据直接返回给使用方。

5、共享设计模式

自治是微服务的设计原则之一,而这个设计模式是共享同一个数据库。

6、异步消息设计模式

同步调用模式在调用的过程中会阻塞线程,如果服务提供方迟迟没有返回,则服务消费方会一直阻塞,严重的会撑满服务的线程池,出现雪崩效应。因此,在构建服务架构系统时,通常会梳理核心系统的最小化服务集合,这些核心的系统服务使用同步调用。而其他核心链路以外的服务可以使用异步消息队列进行异步化。如图:

实例:如图

参考文章:https://www.cnblogs.com/duanxz/p/3514895.html

https://blog.csdn.net/en_joker/article/details/86765157

springCloud微服务常用设计模式(聚合方式)相关推荐

  1. SpringCloud 微服务

    一微服务架构概述 1.1 微服务特性以及优点 每个服务可以独立运行在自己的进程里 一系列独立运行的微服务(goods,order,pay,user,search-)共同构建了整个系统 每个服务为独立的 ...

  2. SpringCloud微服务完整实例

    转自:https://blog.csdn.net/ittechnologyhome/article/details/73824784,侵删 一微服务架构概述 1.1 微服务特性以及优点 每个服务可以独 ...

  3. 微服务框架 SpringCloud微服务架构 26 数据聚合 26.5 多条件聚合

    微服务框架 [SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务] SpringCloud微服务 ...

  4. SpringCloud微服务架构学习

    SpringCloud 1. 微服务架构理论入门 1.1. 微服务架构概述 微服务架构是一种架构模式,它提倡将单一应用程序划分为一组小的服务,服务之间互相协调,互相配合,为用户提供最终价值.每个服务运 ...

  5. 微服务的设计模式,你用了几个

    目录 1. 分解模式 a. 按业务能力分解 b. 按子域分解 c. 扼杀者模式 2. 集成模式 a. API 网关模式 b. 聚合器模式 c. 客户端组合模式 3. 数据库模式 a. 每个服务的数据库 ...

  6. 学习笔记:SpringCloud 微服务技术栈_实用篇①_基础知识

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 前言 学习视频链接 SpringCloud + RabbitMQ + Docker + Redis + 搜 ...

  7. SpringCloud 微服务架构,适合接私活(附源码)

    欢迎关注方志朋的博客,回复"666"获面试宝典 今天给大家推荐一个牛逼的接私活项目,SpringCloud微服务架构项目! 一个由商业级项目升级优化而来的微服务架构,采用Sprin ...

  8. SpringCloud微服务架构,Spring Cloud 服务治理(Eureka,Consul,Nacos),Ribbon 客户端负载均衡,RestTemplate与OpenFeign实现远程调用

    什么是SpringCloud 微服务架构 • "微服务"一词源于 Martin Fowler的名为 Microservices的博文,可以在他的官方博客上找到 http://mar ...

  9. Java生鲜电商平台-SpringCloud微服务架构中分布式事务解决方案

    Java生鲜电商平台-SpringCloud微服务架构中分布式事务解决方案 说明:Java生鲜电商平台中由于采用了微服务架构进行业务的处理,买家,卖家,配送,销售,供应商等进行服务化,但是不可避免存在 ...

最新文章

  1. Oracle中的MERGE语句
  2. 安装Grid Control
  3. 基于RT-Thread开发智能视觉组智能车-乐山师范学院
  4. 【内核】linux内核启动流程详细分析
  5. 文本编辑器第一阶段测试
  6. 逆序数问题(归并排序,C++)
  7. AUTOSAR从入门到精通100讲(九十八)-CANoe之Panel Designer的使用
  8. 思维导图分析http之http协议版本
  9. HDU 1018 Big Number
  10. 定义水果和方法的java代码_命名水果的两列上的自定义聚合
  11. 批处理中的使用问题记录
  12. php-fpm配置文件的优化
  13. VS2017 15.4提供预览版,面向Windows 10秋季更新(FCU)
  14. 高吞吐低延迟Java应用的垃圾回收优化
  15. linux系统文件系统个目录介绍,关于linux的文件系统目录详细介绍
  16. 理解java的内存结构——运行时数据区域
  17. 中英文标点符号转换-在线工具
  18. 个人公众号成长记 - 如何涨粉?
  19. linux服务器如何查看mac地址,linux如何查看mac地址_查看mac地址 linux_linux查看mac地址...
  20. Unity实现在白板上绘画涂鸦

热门文章

  1. spss入门——简单的数据预处理到时间序列分析系列(七)
  2. 丹纳赫集团在中国本土研发并生产的首台流式细胞分选仪正式交付
  3. 添加网络打印机,进入网络共享,弹出“登录失败: 禁用当前账户”的解决办法
  4. 灰色关联度分析excel步骤_技术 | 基于灰色关联与粗糙依赖度的甘肃兰州市区泥石流危险性评价...
  5. 骰子gif图片,一到六,png格式,骰子游戏的骰子素材
  6. 写给我的第一部美剧--《越狱》
  7. html 手机上按比例缩放,动态rem方案等比例缩放手机页面
  8. noise2noise学习与修改
  9. 第一章 微型计算机系统导论【微机原理】
  10. 360桌面助手怎么删除