服务架构相关知识及演进

1. 基本概念

  • 应用(Application)/ 系统(system)

    完成一整套服务的一个程序或一组相互配合的程序群

  • 模块(Module)/ 组件(Component)

    应用程序复杂时,会将其划分不同的部分,这种有清晰职责,内聚性强的部分,就模块。

    例如:单细胞生物只靠一个细胞就能生存,而人这样的生物,却有不同的器官和组织,分别负责不同的功能。

  • 分布式(Distributed)

    系统中的模块不在同一服务器上,就是分布式系统。

  • 集群(Cluster)

    部署于多台服务器上,实现某一特定目标的组件,的这一个整体称为集群。

    如:将多个 mysql 部署到不同服务器上,共同提供数据库相关服务,就可以称为一组数据库集群。

  • 主(Master)/ 从(Slave)

    集群中,通常有一个要承担相对更多的职责,称为主,其余承担附属职责的称为从。

    如:MySQL集群中,一台服务器上允许数据的写入,其他数据库的数据变动是从该台中同步来的,这里允许写的就是主,其余为从

  • 中间件(Middleware)

    一类用于不同应用相互通信的软件,即不同技术,工具,数据库间的桥梁。

    如:饭店的前台就是顾客和后厨的中间件,负责将顾客要的菜转达给后厨。

  • 评价指标(Metric)

    • 可用性(Availability)
      单位时间内,系统正常服务的值 / 期望值。
    • 响应时长(Response Time RT)
      用户完成输入到系统给用户响应的时长。
    • 吞吐(Throuhput)vs 并发(Concurrent)
      吞吐:单位时间段内,系统可成功处理的请求数
      并发:系统同一时刻支持的最大请求量

2. 架构演进

2.1 单机架构

所有服务全在一台服务器上

2.2 应用数据分离架构

应用和数据库部署在不同服务器上,应用服务通过网络访问数据

2.3 应用服务集群架构

将应用服务部署到多台服务器上,构成集群。

通过算法,进行流量分配给集群中的服务器。

常见算法:

  • Round---Robin 轮询算法:平等的将请求分发给不同服务器
  • Weight---Round------Robin 轮询算法:不同服务器赋不同权重,进行请求分别
  • 一致哈希散列算法:通过计算用户的特征值(如 IP 地址)得 哈希值,根据哈希值分发请求,优点:相同客户的请求总是被分给指定的服务器

2.4 读写分离/主从架构

保留⼀个主要的数据库作为写入数据库,其他的数据库作为从属。

数据库。从库的所有数据全部来自主库的数据,经过同步后,从库可以维护着与主库⼀致的数据。

2.5 引入缓存------冷热分离架构

读取频率远大于其他数据的称为热点数据,相对的则是冷数据。

将热点数据存入缓存中,一方面可以提升读取响应时间;另一方面,在请求到数据库前就被处理了,降低数库压力。

2.6 垂直分库

将不同业务的数据存储到不同的数据库中,在这一类数据放在多个数据库中。

2.7 业务拆分 --- 微服务

将不同业务进行拆分,每个业务有自己的缓存和存储,不同业务间数据不能直接访问,业务间通过 Gateway,消息总线等技术,相互调用关联。

相关推荐
码事漫谈3 小时前
别写Prompt了,现在流行给AI“写循环”
后端
Kyrie_Li4 小时前
Spring Boot Kafka 生产级配置全解析:从入门到精通
spring boot·后端·kafka
Coder_Shenshen5 小时前
西门子S7CommPlus协议鉴权算法原理与流程详解
网络·后端·算法
yuhaiqiang6 小时前
随手 vibecoding 的浏览器插件已经 6000 多次下载,聊聊他的产品设计
前端·后端·面试
会周易的程序员6 小时前
microLog 的本地日志读取接口 log_reader — 本地日志文件读取工具开发指南
linux·物联网·架构·嵌入式·日志·iot·aiot
geovindu7 小时前
python: Functional Options Pattern
开发语言·后端·python·设计模式·惯用法模式·函数式选项模式
无心水8 小时前
【全域智能营销实战】2、Spring AI 模块化架构深度解读:从 1.0 到 2.0 的演进与最佳实践
人工智能·spring·架构·harness·顶尖架构师·全域智能营销·harmess
HavenlonLabs8 小时前
Havenlon 对抗性完整(十七):安全不是“防住攻击”,而是控制失败方式
网络·人工智能·架构·安全威胁分析·安全架构·havenlon
doiito(Do It Together)8 小时前
media_agent 进化之路:把 Gliding Horse 的 Agent 超能力注入 ComfyUI,让图片生成自己“学会”优化
人工智能·架构·rust·knowledge graph
触底反弹9 小时前
🔥 从点积到 Transformer:我终于搞懂大模型是怎么"猜"出下一个词的了
人工智能·机器学习·架构