# 异步水平分层架构

![](/files/-Ltdv8XWVdw6NQMYJTUV)

图3异步化水平分层架构

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

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

## **面向服务化架构(SOAArchitecture)**

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

![](/files/-Ltdv8XY4D1VJkGNtj3I)

图4 SOA架构

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

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

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

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

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tuonioooo-notebook.gitbook.io/micro-services-subject/jia-gou-she-ji-pian/hu-lian-wang-jia-gou-yan-jin-fen-xi/yi-bu-shui-ping-fen-ceng-jia-gou.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
