「软件」后端开发术语大全( 三 )

  • 可用性:在系统集群的一部分节点宕机后 , 系统依然能够正确的响应用户的请求 。
  • 分区容错性:系统能够容忍节点之间的网络通信的故障 。

简单的来说 , 在一个分布式系统中 , 最多能支持上面的两种属性 。 但显然既然是分布式注定我们是必然要进行分区 , 既然分区 , 我们就无法百分百避免分区的错误 。 因此 , 我们只能在一致性和可用性去作出选择 。
在分布式系统中 , 我们往往追求的是可用性 , 它的重要性比一致性要高 , 那么如何实现高可用 , 这里又有一个理论 , 就是 BASE 理论 , 它给 CAP 理论做了进一步的扩充 。
11. BASE理论BASE 理论指出:
  • Basically Available(基本可用)
  • Soft state(软状态)
  • Eventually consistent(最终一致性)

BASE 理论是对 CAP 中的一致性和可用性进行一个权衡的结果 , 理论的核心思想就是:我们无法做到强一致 , 但每个应用都可以根据自身的业务特点 , 采用适当的方式来使系统达到最终一致性 。
12. 水平扩展/垂直扩展
  • 水平扩展 Scale Out通过增加更多的服务器或者程序实例来分散负载 , 从而提升存储能力和计算能力 。
  • 垂直扩展 Scale Up 提升单机处理能力 。
垂直扩展的方式又有两种:
  • (1)增强单机硬件性能 , 例如:增加CPU核数如32核 , 升级更好的网卡如万兆 , 升级更好的硬盘如SSD , 扩充硬盘容量如2T , 扩充系统内存如128G;
  • (2)提升单机软件或者架构性能 , 例如:使用Cache来减少IO次数 , 使用异步来增加单服务吞吐量 , 使用无锁数据结构来减少响应时间;
13. 平行扩容与水平扩展类似 。 集群服务器中的节点均为平行对等节点 , 当需要扩容时 , 可以通过添加更多节点以提高集群的服务能力 。 一般来说服务器中关键路径(如服务器中的登录、支付、核心业务逻辑等)都需要支持运行时动态平行扩容 。
14. 弹性扩容指对部署的集群进行动态在线扩容 。 弹性扩容系统可以根据实际业务环境按照一定策略自动地添加更多的节点(包括存储节点、计算节点、网络节点)来增加系统容量、提高系统性能或者增强系统可靠性 , 或者同时完成这三个目标 。
15. 状态同步/帧同步
  • 状态同步:状态同步是指服务器负责计算全部的游戏逻辑 , 并且广播这些计算的结果 , 客户端仅仅负责发送玩家的操作 , 以及表现收到的游戏结果 。
特征:状态同步安全性高 , 逻辑更新方便 , 断线重连快 , 但是开发效率较低 , 网络流量随游戏复杂度增加 , 服务器需要承载更大压力 。
  • 帧同步:服务端只转发消息 , 不做任何逻辑处理 , 各客户端每秒帧数一致 , 在每一帧都处理同样的输入数据 。
特征:帧同步需要保证系统在相同的输入下 , 要有相同的输出 。 帧同步开发效率高 , 流量消耗低而且稳定 , 对服务器的压力非常小 。 但是网络要求高 , 断线重连时间长 , 客户端计算压力大 。
「软件」后端开发术语大全
本文插图
网络通信
1. 连接池预先建立一个连接缓冲池 , 并提供一套连接使用、分配、管理策略 , 使得该连接池中的连接可以得到高效、安全的复用 , 避免了连接频繁建立、关闭的开销 。
2. 断线重连由于网络波动造成用户间歇性的断开与服务器的连接 , 待网络恢复之后服务器尝试将用户连接到上次断开时的状态和数据 。
3. 会话保持会话保持是指在负载均衡器上的一种机制 , 可以识别客户端与服务器之间交互过程的关连性 , 在作负载均衡的同时还保证一系列相关连的访问请求都会分配到一台机器上 。 用人话来表述就是:在一次会话过程中发起的多个请求都会落到同一台机器上 。