简单的登录鉴权模块设计
在分布式系统中,有些模块服务需要单独暴露在外网供用户使用,但是其体量和重要性不如主要后台服务,不需要为其配置https服务,这个时候可不可以在http的基础上,设计一个简单的加密签名服务呢? 在整个业务中有三个主体:客户端C、服务端S、认证平台E(也就是后台)。 G收到C的登录请求,会向C发送一个一次性的salt。 C收到salt,使用自己的账号密码对salt进行加密并签名。加密用DE...
在分布式系统中,有些模块服务需要单独暴露在外网供用户使用,但是其体量和重要性不如主要后台服务,不需要为其配置https服务,这个时候可不可以在http的基础上,设计一个简单的加密签名服务呢? 在整个业务中有三个主体:客户端C、服务端S、认证平台E(也就是后台)。 G收到C的登录请求,会向C发送一个一次性的salt。 C收到salt,使用自己的账号密码对salt进行加密并签名。加密用DE...
lockstep 帧同步 / 步进锁定 经典架构方案 lockstep,译步进锁定。这是云风大佬给出的翻译。当然也可以简单翻译为帧同步。为什么译为步进锁定呢?这里谈下多人游戏中画面同步算法的思想,所谓画面同步,就是让同一局游戏中的所有电脑同时执行一样的操作,得到一样的结果,也就得到同样的画面。 我们都知道,网络传输是需要时间的,也就是存在延迟的。但是,我们要理解一点,懂动画的同学应该知道...
最近由于工作上的需要,需要应用效果比较好的客户端玩家位置同步方案,在查看大量技术博客和云风大佬的博客,得到效果较好的玩家位置同步方案。 云风大佬的博客中说过,好的同步方案依赖于准确的对时系统。什么是对时系统呢,对时系统是指所有客户端和服务端采用同一套内部时间系统,而不是使用各自操作系统的时间系统。对时系统的设计不是本文的重点,详细可以去参考云风大佬的博客。 好的位置同步方案一定要考虑网络...
在网络游戏中客户端如何渲染出当前之间时间的场景呢?需要两个东西,第一个是地图生成时的时间戳,被称为地图种子。客户端得到地图种子,就可以根据当前时间推算出对于无状态的当前地图场景。无状态的地图场景从生成开始之后的所有场景变化都是可以通过人为计算出来的,所以被称为无状态的地图场景。既然有无状态,意味着场景中存在有状态的场景元素,他们需要被玩家人为触发生成,和地图种子没有关系。这种地图元素被称为有...
本文主要参考Everything you wanted to know about the Actor Model but might have been afraid to ask, 本义是讲解actor模型的基本方面,了解actor模型背后的关键思想及其主要前提 Actor模型是一种计算的数学理论,基于Actors的概念。Actor是计算的基本单元,体现为三件事: 信息处理 ...
搭建集群概况 2台2g2g、1台2g4G云服务器实例 集群内服务器角色如下: 节点 角色 IP k8s-m-1 master 192.168.1.1 k8s-m-2 worker 192.168.1.2 ...
redis缓存数据库数据,当数据库数据被更新时,需要通知redis对应缓存失效。最简单的通知方式就是在数据库完成更新后,更新redis的数据,但是这样会面临一个问题,这个操作不是原子的,因此客户会请求到失效的缓存。如果更新完数据库后更新缓存之前,线程被调度,这样就会产生时间gap。如何解决这个问题呢?大部分人可能想到加锁,锁住一个热点数据缓存可不是一个明智之举。 发布订阅设计模型是非常著名...