专栏首页Golang语言社区LollipopGo游戏服务器-数据一致性设计

LollipopGo游戏服务器-数据一致性设计

本期课程给大家谈谈数据一致性,因为经常有同学问到,今天就给大家讲讲,数据一致性大致可分为三类:

  1. 时间点一致性。 时间点一致性指数据在任意时刻都是一致的。
  2. 事务一致性。 事务一致性指的是再一个事务执行之前和执行之后数据库都必须处于一致性状态。如果事务成功地完成,那么系统中所有变化将正确地应用,系统处于有效状态。
  3. 应用一致性。 应用一致性指的是应用一致性可以看做是约束一致性中的一种。上面的事务一致性代表的是单一数据源,如果数据源是多个,比如数据源有多个数据库,文件系统,缓存等。那么就需要我们应用一致性,这里也看做是分布式事务一致性。

针对于游戏服务器数据一致性可能与目前我们所知道的分布式数据一致性有所不同,游戏服务器数据更新多以玩家数据更新为主,同时大多数游戏服务器框架都设计有DBserver,游戏架构设计与分布式或者微服务的设计就避免了不一致的风险。

LollipopGo X2.5架构

LollipopGo架构本身就设计有DBserver,玩家的数据缓存更新都是以DB更新成功为主,如果存在以下情况:

玩家在游戏服或者战斗服导致金币变化,通过协议更新到大厅或者主场景服务器,主场景服务器再更新到DBserver进行数据保存到数据库。如下图:

如果大厅服或者主场景服更新数据到DB服更新失败这种情况下,大厅服或者主场景服及DB服会将更新失败的log发送给Logserver,同时大厅服或者主场景服不会更新玩家金币变化的缓存,同时会同步给游戏服,金币进行回滚操作。本期视频会在B站:Golang语言社区,近期更新。

如果大家有不同的观点可以在文章下面留言,同时说说你对游戏服数据一致性的一些看法。

本文分享自微信公众号 - Golang语言社区(Golangweb),作者:彬哥

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Go队列和堆栈

    golang,其实我的实现是利用container/list包实现的,其实container/list包很强大. package main import ...

    李海彬
  • Go-List

    要点 Element表示链表的一个元素,List表示链表 访问元素的值: .Value list是双向链表,可以在指定的位置插入元素 初始化: New()。——...

    李海彬
  • Golang语言学习-并发

    goroutine: 由GO运行环境管理的轻量级线程 channel: 有类型的管道,操作符为 <- 数据流向箭头指向的方向 使用make(chan ...

    李海彬
  • 谈谈数据一致性

    数据一致性这个单词在平常开发中,或者各种文章中都能经常看见,我们常常听见什么东西数据不一致了,造成了一定的损失,赶快修复一下。但是很多同学对一致性具体代表什么意...

    用户5397975
  • CAP原理和最终一致性

    在足球比赛里,一个球员在一场比赛中进三个球,称之为帽子戏法(Hat-trick).在分布式数据系统中,也有一个帽子原理(CAP Theorem),不过此帽子非彼...

    后端技术探索
  • 简单聊聊数据一致性这个概念

    今天这篇笔记是讨论数据一致性概念的文章,作者是大名鼎鼎的All Things Distributed博客博主,AWS的CTO Werner Vogels。文章完...

    哒呵呵
  • 架构师必懂的NoSQL[一致性]底层原理

    从关系数据库过渡到NoSQL数据库的一个最大改变就是你对一致性的思考方式。关系数据库主要是通过“强一致性”来避免各种不一致的问题,这个我们很快就会说到。一旦你进...

    ImportSource
  • 分布式初探——分布式系统的一致性,究竟是什么?

    在计算机系统的领域,一致性可以说是一个高频词,可能出现的场景很多。从分布式系统到数据库的事务,都有它的身影。

    TechFlow-承志
  • 一份热乎乎的腾讯后端面试真题

    最近有个好朋友换工作了,面了腾讯后端,跟他要了份面试真题,大家一起来探讨一下,哈哈~

    捡田螺的小男孩
  • POJ 1067-取石子游戏

    Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 1 Accept...

    YINUXY

扫码关注云+社区

领取腾讯云代金券