【架构师】什么是单元化架构?

简介: 单元化架构将系统划分为多个自包含单元,每个单元独立部署全套业务与部分数据,支持就近访问、低延迟与异地多活。用户请求在单个单元内闭环完成,提升性能与容灾能力,但需全链路改造、面临数据路由与高成本挑战,适用于大型企业核心场景。

所谓单元,是指一个能完成所有业务操作的自包含集合,在这个集合中包含了所有业务所需的所有服务,以及分配给这个单元的数据。


单元化架构就是把单元作为系统部署的基本单位,在全站所有机房中部署数个单元,每个机房里的单元数目不定,任意一个单元都部署了系统所需所有的应用,数据则是全量数据按照某种维度划分后的一部分。


所以,在单元化架构中,分成很多个单元和一个中心。每个单元之间都是相互独立的。一个单元中完整的部署了一整套业务,如电商交易、金融支付,一次用户操作可以在一个单元内部完成,不需要跨单元执行。


但是如果从数据角度来说,单元内的数据又不是完整的,他只包含这个单元内的数据,其他的单元的数据他是没有的。


所以,多个单元组合在一起,数据才是完整的。比如我们可以把一个淘宝,分成3个单元,如上海单元、北京单元和新加坡单元。


这样,一个杭州的用户下单,就可以直接路由到上海单元,并且在这个单元内把所有流程都走完,一个美国的用户下单,就会路由到新加坡单元,并在这个单元完成所有操作。并且杭州的用户的数据只在上海单元中有,美国用户的数据只保存在新加坡单元中。


除了单元以外,一般还有一个中心的概念,中心的数据就是全量的,所有单元的数据的聚合在一起,都存放在中心上,也会有一部分用户可以路由到中心进行业务操作。


做了单元化以后,一次下单要经过的交易系统、支付系统、数据库、缓存、MQ等等,这些都是在本单元内部独立部署的,所有的请求都不需要跨单元,在单元内部封闭执行完成,可以大大的降低网络的延迟。


并且,做了单元化以后非常方便的扩容,可以在单元内部快速扩容,不会影响到其他单元,也可以直接增加一个新的单元。都有非常好的扩展性。


做了多单元之后,就可以天然实现异地多活,具有很好的容灾性。在用户访问的时候,就可以就近原则,可以得到更快地响应。


当然,单元化也存在一些问题和限制:

  1. 单元化需要全链路改造,在整个环节中,如有一个环节没有做单元化改造,这种情况这个节点就只有中心。那么网络交互就一定会跨单元,跨单元就会带来更多的网络延迟。并且从这个节点开始,后面的所有请求也都只能在中心完成了。
  2. 每个单元都不是完整数据,这就会使得如果用户的路由没做好,就会导致用户的数据跨单元访问后获取不到数据。如果做得好,一个用户只会固定访问一个单元,那么就可能要打破就近原则,比如一个杭州的用户出差美国之后,还会路由到上海单元,那就会访问非常慢。如果给他路由到新加坡单元,速度是快了,但是数据可能没有。
  3. 成本,这个架构方案,成本巨高。所以只在一些大厂中才会采用,并且即使是这些大厂,也没有所有应用都做了单元化改造。并且会衍生出类似强单元化、弱单元化、非单元化等链路,会让这个系统更加复杂。
目录
相关文章
|
API Apache 数据库
Flink CDC 3.0 正式发布,详细解读新一代实时数据集成框架
Flink CDC 于 2023 年 12 月 7 日重磅推出了其全新的 3.0 版本 ~
110768 8
 Flink CDC 3.0 正式发布,详细解读新一代实时数据集成框架
|
容灾 数据库 数据中心
单元化架构:解锁异地多活与突破扩展上限的利器
单元化架构:解锁异地多活与突破扩展上限的利器
|
资源调度 监控 API
开源API网关APISIX分析与使用
开源API网关APISIX分析与使用
1782 0
|
1月前
|
人工智能 NoSQL 关系型数据库
见证|从 Redis 到 Valkey:开源社区的延续与新生
Valkey 的定位很清晰:不做大而全的万能数据库,而是专注于做 AI 基础设施中那个速度最快、离应用最近的数据层。
|
9月前
|
消息中间件 架构师 Kafka
【架构师】如何做技术选型?
技术选型无绝对优劣,关键在于“更合适”。需综合评估功能满足度、可扩展性、安全性、性能等非功能性需求,同时考量使用人数、社区活跃度、迭代速度、学习与维护成本,以及与现有技术体系的匹配度,权衡利弊后做出最优选择。
393 4
|
5月前
|
容灾 关系型数据库 MySQL
从 0 到 1 落地异地多活:单元化、数据同步与流量调度的核心壁垒全击穿
本文系统阐述异地多活架构核心实践:定义其为跨地域对等单元、独立闭环、秒级容灾的高可用方案;详解单元化设计三大原则(数据封闭、单元对等、路由一致);剖析数据同步(Canal+MQ为主)与流量调度(GSLB+路由校验)关键技术;并提供ID生成、分片策略及落地避坑指南。
547 2
|
9月前
|
架构师 Java 程序员
程序员的出路:30岁,我们聊聊那些真实的选择
30岁程序员的迷茫与出路:技术焦虑、薪资倒挂、能力单一困扰着许多人。本文基于真实观察,梳理五条可行路径——深耕技术、理性转管理、务实搞副业、跨界融合、提前布局B计划,并总结三条铁律与自测问题,帮助你在变局中找到方向。出路不在远方,而在你写下的每一行“值钱”的代码里。(238字)
1506 117
|
5月前
|
人工智能 机器人 定位技术
不会写代码也能懂:OpenClaw四层架构图解
本文用四张示意图,通俗拆解OpenClaw四大核心层:交互层(多端消息统一翻译)、网关层(路由/排队/调度中枢)、智能体层(会话、上下文、执行与记忆)、执行层(本地/远端节点+插件化技能)。帮你快速定位问题、理解消息全流程,零代码也能心中有图。
|
7月前
|
数据采集 监控 数据可视化
快速上手:LangChain + AgentRun 浏览器沙箱极简集成指南
AgentRun Browser Sandbox 是基于云原生函数计算的浏览器沙箱服务,为 AI Agent 提供安全、免运维的浏览器环境。通过 Serverless 架构与 CDP 协议支持,实现网页抓取、自动化操作等能力,并结合 VNC 实时可视化,助力大模型“上网”交互。
1165 43
|
人工智能 Kubernetes Java
回归开源,两位 Java 和 Go 程序员分享的开源贡献指引
Higress是一个基于Istio和Envoy的云原生API网关,支持AI功能扩展。它通过Go/Rust/JS编写的Wasm插件提供可扩展架构,并包含Node和Java的console模块。Higress起源于阿里巴巴,解决了Tengine配置重载及gRPC/Dubbo负载均衡问题,现已成为阿里云API网关的基础。本文介绍Higress的基本架构、功能(如AI网关、API管理、Ingress流量网关等)、部署方式以及如何参与开源贡献。此外,还提供了有效的开源贡献指南和社区交流信息。
2530 33