ITPub博客

首页 > 数据库 > 数据库开发技术 > 架构师总体架构设计与实践

架构师总体架构设计与实践

原创 数据库开发技术 作者:greencoatman 时间:2024-06-17 14:49:41 0 删除 编辑

破局

    • 垂直方向拆分(业务维度)

    • 水平方向拆分(功能维度)

    • 数据库存储量大/请求量大破局

    • 垂直拆分(分库)

    • 水平拆分(分表)

    • 单体拆成多个服务

    • 如何拆分

    • 架构拆分同理


架构设计哲学:术(领域)不同,道相通

    


  • 功能一:CRUD

    • 业务增删改查接口(批量)

  • 功能二:ORM

    • MyBatis 3

  • 功能三:Sharding(分库分表)

    • Sharding-JDBC

  • 功能四:屏蔽底层存储差异性

    • MySQL/MongoDB

    • Redis

  • 服务类型

    • RPC服务

    • 例如:Dubbo

    • RPC服务

    • 例如:Dubbo

    • Web服务

    • 例如:Spring Boot

    • 网关层

    • 业务逻辑层

    • 数据访问层


  • 服务协议

    • 通信协议

    • 数据传输协议

    • TCP长连接

    • 二进制协议(例如:Protocol Buffers)

    • SQL2003

    • 通信协议

    • 数据传输协议

    • TCP长连接

    • 二进制协议(例如:Protocol Buffers)

    • 通信协议

    • 数据传输协议

    • HTTPS

    • JSON

    • 网关层

    • 业务逻辑层

    • 数据访问层


定长Header + 变长Body


定长Header

plaintext

{

long uid;
long sessionid;
int command;
int bodylen;
}

变长Body

plaintext

{

int infotype;
long infoid;
String infocontent;
……
}

单体架构中,一个大的 WAR(Web Application Archive) 包含了所有功能模块,运行在 Tomcat 容器中。数据库使用 MySQL,包含用户表、商品表和交易表。

功能模块

  1. 接收用户请求

  2. 接收商品请求

  3. 接收交易请求

  4. 数据库读用户数据

  5. 数据库读商品数据

  6. 数据库读交易数据

  7. 用户业务逻辑处理

  8. 商品业务逻辑处理

  9. 交易业务逻辑处理

  10. 封装用户结果返回

  11. 封装商品结果返回

  12. 封装交易结果返回

图中展示了将单体架构拆分为微服务架构后的情况。系统被拆分为三个独立的微服务,分别处理用户、商品和交易的相关业务逻辑。每个服务都有自己的网关层、业务逻辑层和数据访问层。

微服务划分


  1. 用户服务

  • 网关层:处理用户请求的入口

  • 用户业务逻辑层:处理用户相关的业务逻辑

  • 用户数据访问层:访问用户数据

  • MySQL Database:用户表

  • 商品服务

    • 网关层:处理商品请求的入口

    • 商品业务逻辑层:处理商品相关的业务逻辑

    • 商品数据访问层:访问商品数据

    • MySQL Database:商品表

  • 交易服务

    • 网关层:处理交易请求的入口

    • 交易业务逻辑层:处理交易相关的业务逻辑

    • 交易数据访问层:访问交易数据

    • MySQL Database:交易表

    展示了微服务架构的具体实现,每个微服务都有独立的层次结构。

    层次结构


    1. 网关层

    • 处理请求的入口,通常负责路由和认证等功能。

  • 业务逻辑层

    • 处理核心业务逻辑,具体到不同服务(用户、商品、交易)各自实现相应的业务功能。

  • 数据访问层

    • 负责与数据库交互,执行数据的读写操作。

  • MySQL Database

    • 各个服务分别使用自己的数据库表来存储相关数据


    原文作者:二进制跳动;如有侵权,请联系管理员删除。

    请登录后发表评论 登录
    全部评论

    注册时间:2022-07-08

    • 博文量
      312
    • 访问量
      141137