ActorModel学习(三)actor地址注册中心
Actor Name 地狱 为什么会有ActorName地狱呢,因为在Actor System中,万物皆为Actor,都有自己的Name。这样导致Actor Ref的发现变得非常困难。加上Actor灵活的生成销毁,Actor Name集合是不断处于变化的状态的。 一个简单粗暴的解决方案,就是把主要节点的Name写死在配置文件中。不同的ActorSystem内的节点只能通过配置文件访问到其...
Actor Name 地狱 为什么会有ActorName地狱呢,因为在Actor System中,万物皆为Actor,都有自己的Name。这样导致Actor Ref的发现变得非常困难。加上Actor灵活的生成销毁,Actor Name集合是不断处于变化的状态的。 一个简单粗暴的解决方案,就是把主要节点的Name写死在配置文件中。不同的ActorSystem内的节点只能通过配置文件访问到其...
消息协议设计 服务端引擎的消息协议一律使用proto协议规范设计、全部的消息可以被划分为两种类型:系统内部消息和系统外部消息。系统内部消息就是在服务端引擎内部流通的消息,系统外部消息就是客户端向网关发送的消息,网关会转发到内部服务端引擎的某个节点。总的来说,就是消息的产生方不同,系统内部消息产生与系统内部、系统外部消息产生于系统外部。 这样区分的好处:第一个是客户端能够无感的迁移到新的服务...
go的并发理念是所有共享内存的访问修改的任务都推送到通道中串行修改,而不是使用锁去保护共享资源。这样的设计理念,使得在并发运算的过程中保证资源的无锁串行访问,提高程序效率。 但是无锁意味着不存在死锁情况吗?我以前是这么认为的,知道在最近的开发中,才遇见这样的问题。我们知道就算是chan,当其中的消息满的时候,此时再往chan中推送消息,推送消息方协程会被阻塞。 假设这样的场景:现在有多个...
思想 负载均衡的算法有很多,比如轮询、随机、时间片轮转等等。这里我想介绍一个负载均衡的思想,叫哈希一致性负载均衡。哈希一致性负载均衡的决策重点在于输入的哈希值,输入会被哈希到某个服务节点上。哈希一致性的特点是下一次相同的输入到来时,仍然会被hash到同一个服务节点上,这样的好处是对于同一个用户,始终访问一个服务,该服务上的redis缓存命中的概率大大提高。 进阶用法 为什么选用哈希一致性算...
在分布式系统中,有些模块服务需要单独暴露在外网供用户使用,但是其体量和重要性不如主要后台服务,不需要为其配置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 ...