Spring-BootJava 杂谈

微服务架构设计模式

2019-02-21  本文已影响2人  Java机械师

微服务架构需要考虑的问题

API Gateway

服务间调用

服务发现

服务容错

服务部署

数据调用

聚合器微服务设计模式

这是一种最常见也最简单的设计模式

聚合器调用多个服务实现应用程序所需的功能。它可以是一个简单的 WEB 页面,将检索到的数据进行处理展示。它也可以是一个更高层次的组合微服务,对检索到的数据增加业务逻辑后进一步发布成一个新的微服务,这符合DRY原则。另外,每个服务都有自己的缓存和数据库。如果聚合器是一个组合服务,那么它也有自己的缓存和数据库。聚合器可以沿X轴和Z轴独立扩展。

代理微服务设计模式

这是聚合模式的一个变种,如下图所示

在这种情况下,客户端并不聚合数据,但会根据业务需求的差别调用不同的微服务。代理可以仅仅委派请求,也可以进行数据转换工作。

链式微服务设计模式

这种模式在接收到请求后会产生一个经过合并的响应,如下图所示

在这种情况下,服务A接收到请求后会与服务B进行通信,类似地,服务B会同服务C进行通信。所有服务都使用同步消息传递。在整个链式调用完成之前,客户端会一直阻塞。因此,服务调用链不宜过长,以免客户端长时间等待。

分支微服务设计模式

这种模式是聚合器模式的扩展,允许同时调用两个微服务链,如下图所示

数据共享微服务设计模式

自治是微服务的设计原则之一,就是说微服务是全栈式服务。但在重构现有的“单体应用(Monolithic Application)”时,SQL 数据库反规范化可能会导致数据重复和不一致。因此,在单体应用到微服务架构的过渡阶段,可以使用这种设计模式,如下图所示

在这种情况下,部分微服务可能会共享缓存和数据库存储。不过,这只有在两个服务之间存在强耦合关系时才可以。对于基于微服务的新建应用程序而言,这是一种反模式。

异步消息传递微服务设计模式

虽然 REST 设计模式非常流行,但它是同步的,会造成阻塞。因此部分基于微服务的架构可能会选择使用消息队列代替 REST 请求/响应,如下图所示

下面小编为大家整理了微服务需要掌握的知识

需要相关资料可以加群:810589193,点击链接加入群聊【Java架构学习交流群】:https://jq.qq.com/?_wv=1027&k=5deQUBl

1.1. Dubbo应用及源码解读

1.1.1. Dubbo简介及初入门

1.1.2. Dubbo管理中心及监控系统安装部署

1.1.3. 领域驱动之如何正确划分Dubbo分布式服务

1.1.4. 通讯协议TCP、UDP、HTTP分析

1.1.5. Dubbo负载均衡机制探析

1.1.6. 如何完成Dubbo服务只订阅及只注册模式

1.1.7. 架构师必备技术之如何设计Dubbo服务接口

1.1.8. Dubbo设计原理及源码分析

1.1.9. Dubbo容错机制及高扩展性分析

1.1.10.Dubbo服务与Docker虚拟化技术集成实战


1.2. SpringBoot

1.2.1. SpringBoot与微服务的区别与联系

1.2.2. 快速构建SpringBoot工程

1.2.3. SpringBoot核心组件start、actuator等剖析

1.2.4. 快速集成Mybatis实战

1.2.5. 快速集成Dubbo及案例实战

1.2.6. 快速集成redis及案例实战

1.2.7. 构建Swagger插件实现API管理及接口测试体系


1.3. SpringCloud应用及源码解读

1.3.1. Zuul路由网关详解及源码探析

1.3.2. Ribbon客户端负载均衡原理与算法详解,与服务端负载均衡区别

1.3.3. Feign声明式服务调用方式实现

1.3.4. Hystrix服务熔断及服务降级实战

1.3.5. Eureka注册中心构件及源码分析

1.3.6. Config配置服务中心与svn、git快速集成

1.3.7. Sleuth调用链路跟踪

1.3.8. BUS消息总线技术

1.3.9. Stream 消息驱动的微服务


1.4. Docker虚拟化技术

1.4.1. Docker介绍、安装与使用

1.4.2. Docker组成

· 镜像

· 容器

· 私有仓库

1.4.3. Docker Compose部署脚本

1.4.4. Docker Service 服务编排

1.4.5. Docker Redis分布式集群部署

1.4.6. Docker File构建

1.4.7. 通过Maven插件打包Docker镜像

1.4.8. Docker部署及运行应用程序

1.4.9. Kubernetes编配

1.4.10.基于Docker构建Mysql集群实战

1.4.11.高可用SpringCloud微服务与Docker集成实现动态扩容实战

加群:810589193,点击链接加入群聊【Java架构学习交流群】:https://jq.qq.com/?_wv=1027&k=5deQUBl即可获取Java工程化、高性能及分布式、高性能、高架构、性能调优、Spring、MyBatis、Netty源码分析等多个知识点高级进阶干货的直播免费学习权限及相关视频资料,还有spring和虚拟机等书籍扫描版

合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

上一篇下一篇

猜你喜欢

热点阅读