网络游戏同步机制

网络同步 网络同步 = 数据同步 + 表现同步 网络同步一般分为帧同步和状态同步 帧同步 基本原理 计算逻辑在客户端,按照一定的帧速率(逻辑帧而非渲染帧),服务端只转发 帧同步缺陷 计算逻辑不在服务端,容易出现外挂 严格帧锁定同步网络差的客户端会影响其他玩家体验(乐观帧锁定同步) 不同客户端浮点数精

在线支付系统设计

支付系统基本概念 简单支付流程 最简单的支付流程只展示了正向支付的流程,当然还有退款流程、撤销流程等 简单清结算流程 支付系统和上游(如银行)是机构对机构的关系,通常使用清算概念,并且金融机构之间大部份情况下会有独立的清算机构做清算任务

分布式脑裂

脑裂定义 一个整体的系统分裂成两个独立的节点,争夺共享资源造成系统混乱 出现脑裂的原因 主心跳检测超时,导致主备切换,备提供服务后,主又恢复正常,出现双主 解决思路 仲裁机制 通过设置一个仲裁角色,定时探活主备,但是仲裁者会存在高可用和性能瓶颈 授权机制

基于redis的分布式锁实现

分布式锁安全和失效保障 算法只需要具备3个特性就可以实现最低保障的分布式锁 安全属性:独享,任意时刻只有一个客户端持有锁 活性A:无死锁,即便持有锁客户端崩溃或网络分裂,锁仍然可以被获取 活性B:容错,只要大部分redis节点存活,客户端即可获取和释放锁 单redis实例实现 使用锁命令

游戏服务器架构演进

游戏服务器要素 对于游戏服务器,三个比较重要的部份就是:CPU、内存、带宽的设计 逻辑架构:合适的进程、线程、协程的CPU调度方案,合适的同步或异步编程模型,分区分服或世界服的方式来提高服务器的承载量和稳定性 内存架构:合理使用内存,提高承载量,降低服务延迟 通信架构:通信协议如UDP/TCP 游戏

二分查找算法汇总

二分查找原题 https://leetcode.cn/problems/binary-search/ 注意计算mid的时候不要用(left+right) / 2,因为可能会溢出 func search(nums []int, target int) int { n := len(nums)

排序算法汇总

冒泡排序n^2 func bubbleSort(list []int) []int { done := false for i := len(list) - 1; i >= 0; i-- { done = true for j := 0; j < i; i++ { if list[
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×