micro-services-subject
  • Introduction
  • 架构设计篇
    • 互联网架构演进分析
      • 单体架构
      • 水平分层架构
      • 异步水平分层架构
      • 微服务化架构
    • DDD领域驱动设计
    • 常见的系统分布式架构
    • 微服务架构的思路
  • docker实战篇
    • docker基础
      • 入门教程
      • 镜像、容器、仓库
    • docker安装与使用
    • 搭建docker私有仓库
    • docker swarm集群搭建
    • docker compose部署脚本
    • docker service 服务编排
    • docker stack分布式集群部署
    • docker portainer容器可视化管理工具
    • 通过maven插件打包docker镜像
    • docker应用:ELK搭建
    • docker应用:搭建rabbitmq、mysql等软件
  • SpringCloud实战篇
    • config分布式配置中心
    • Eureka注册与发现服务
    • Ribbon客户端负载均衡
    • Hystrix服务熔断组件
    • Feign声明式服务调用
    • Zuul网关服务
Powered by GitBook
On this page

Was this helpful?

  1. 架构设计篇
  2. 互联网架构演进分析

异步水平分层架构

Previous水平分层架构Next微服务化架构

Last updated 5 years ago

Was this helpful?

图3异步化水平分层架构

图3和图2相比,增加MQ层(消息队列层),APP端更新请求经过网关层后持久化到MQ层,返回给APP端。业务逻辑层从MQ层读取更新请求消费。在架构上,通过MQ层把更新请求的处理进行了异步化。图3即变成了异步化水平分层架构。采用异步化水平分层架构,提升了系统整体吞吐量。在社区等高并发业务场景适合异步化架构。异步化架构会带来数据处理的延迟情况,因此对数据一致性要求苛刻的业务场景,比如金融、支付等,异步化架构不适合,这些场景常使用图2同步水平分层架构。

水平分层架构解决了单体架构的问题,它存在的明显问题是每层粒度过粗,在每一层并没有按照业务功能单元进一步垂直拆分。

面向服务化架构(SOAArchitecture)

单体架构按照业务功能在垂直方向进行拆分,就变成了SOA架构,如图4:

图4 SOA架构

图4按照业务功能单元进行拆分,分为了交互服务、信息服务等,每一个服务都是单体,单体服务之间通过企业服务总线(ESB)进行交互。可知SOA架构仅进行了垂直方向拆分,对每个服务并没有按照水平方向进一步拆分,因此SOA架构拆分也不彻底。

SOA的提出是在企业计算领域,就是要将紧耦合的系统,划分为面向业务的,粗粒度,松耦合,无状态的服务。服务发布出来供其他服务调用,一组互相依赖的服务就构成了SOA架构下的系统。

基于这些基础的服务,可以将业务过程用类似BPEL流程的方式编排起来,而BPEL反映的是业务处理的过程,这些过程对于业务人员更为直观,调整也比hardcode的代码更容易。

当然企业还需要对服务治理,比如服务注册库,监控管理等。

我们知道企业计算领域,如果不是交易系统的话,并发量都不是很大的,所以大多数情况下,一台服务器就容纳将许许多多的服务,这些服务采用统一的基础设施,可能都运行在一个应用服务器的进程中。虽然说是面向服务了,但还是单一的系统。