在最近设计的SNS游戏服务器架构中有一些感悟:

第一, 首先对业务领域进行建模; 产生一些核心的, 不变的概念: 在设计中, 我抽象了几个概念,

1) 绝对ID: 在系统中需要唯一标识的实体或类型;

2) 类型: 实体的类型

3) 数据源: 实体的数据来源和持久化, 在其中实现数据源与程序数据的相互转化

4) 战斗元素: 可以被装备, 可以被在战斗中使用, 为战斗者提供战斗加成 如装备, 技能, 经验药水等(只负责与数据源进行交互, 计算属性与数值)

5) 战斗者: 可以装备战斗元素, 使用战斗元素的加成(只负责与数据源进行交互, 计算属性与数值)

6) 战斗控制者: 控制战斗者进行战斗, 产生战斗逻辑

7) 路由器或叫分派器: 为各种需要路由或分派的对象提供接口与基本逻辑(在当前设计中, 我实现了一个数据库分表与分库的一个分派器, 便于以后的横向扩展)

第二, 为架构进行目标定位: 性能, 扩展性, 可读性, 如何部署, 开发效率

第三, 进行技术选型: 根据定位, 选定一种或几种技术来架构系统, 为了解决问题, 通常会引入一些第三方库或技术, 或许没用过, 或许不熟悉, 我采用的技术选型原则是: 为了解决问题必然会引入新的问题, 这个时候我们要就要根据第二点的指标进行权衡, 找出最合适当前场景的技术(我选择的是Niginx + MySQL + memcache(可替换) + gearman)

第四, 保持简单, 只有需要的时候才进行设计, 不进行过于复杂的自动化架构设计;

第五, 服务保持单一, 逻辑仅进行逻辑计算, 不负责进行存取, 存取的只负责存取, 相互之间没有耦合, 为以后进行服务分离提供设计基础

第六, 设计灵活, 弹性的插件体系: 在不修改原有程序的基础上, 提供活动, 任务或其他业务扩展

刚拜读了"分布式系统的工程化开发方法", 很是受到了一些启发, 考虑在架构中实现REST风格的监控机制
												

SNS游戏服务器架构随笔相关推荐

  1. 如何设计大型游戏服务器架构?

    一.游戏服务器特征 游戏服务器,是一个会长期运行程序,并且它还要服务于多个不定时,不定点的网络请求.所以这类服务的特点是要特别关注稳定性和性能.这类程序如果需要多个协作来提高承载能力,则还要关注部署和 ...

  2. 游戏服务器架构:网络服务器端程序线程划分

    服务器端高性能网络编程的核心在于架构,而架构的核心在于进程-线程模型的选择. 作为服务器需要做网络数据的收发,需要做数据库拉取和保存,需要做日志存储,需要做常规的游戏逻辑处理.....在这里我把这些功 ...

  3. 游戏服务器架构-设计模式之观察者模式和发布订阅模式真的一样吗?

    前面我给大家分享了观察者模式和发布订阅模式,有人私信给我说这俩不是一样嘛,大体没什么区别,我猜测大多数认为这两者是一样的可以继续阅读这两篇文章,如果还不能解答你的问题,我相信这篇文章对比两者的关系会让 ...

  4. bigworld游戏服务器架构参考

    http://www.cnblogs.com/GmrBrian/p/3777074.html https://www.zhihu.com/question/29779732 https://www.z ...

  5. 百万用户同时在线游戏服务器架构实现.doc 基于epoll 通信模型

    http://wenku.baidu.com/view/02033d0af78a6529647d53fc.html 百万用户在线网络游戏服务器架构实现 一.            前言 事实上100万 ...

  6. 《王者荣耀游戏服务器架构演进(完整版)》读后感

    原文地址:https://mp.weixin.qq.com/s/l1pnVc_E-Nz6Z27iC0G6GA 1.游戏服务器特征 游戏服务器端,是一个会长期运行的程序,并且它还要服务于多个不定时,不定 ...

  7. 游戏服务器架构演进(完整版)

    http://gad.qq.com/article/detail/32876 ​这是王者荣耀技术分析系列第三篇,有兴趣请持续关注我的blog和公众号. 1.像<王者荣耀>一样红过 2.从& ...

  8. 高性能游戏服务器架构设计,一种高性能大型多人在线角色扮演游戏服务器架构设计.doc...

    一种高性能大型多人在线角色扮演游戏服务器架构设计 一种高性能大型多人在线角色扮演游戏服务器架构设计摘要:大型多人在线角色扮演游戏(Massively Multiplayer Online Role P ...

  9. 游戏服务器架构设计的一些整理

    一.前言 没有最好的架构,只有最适合自身业务的架构. 首先我们应该确定的是大的架构方向:分布式 / 单应用+负载均衡,这两种架构设计直接影响后续的网络层.缓存层.数据层.业务层的设计.笔者这两种架构的 ...

最新文章

  1. Matlab实现直方图均衡化(基于自定义函数)
  2. Android4.4.2KK竖屏强制更改为横屏的初步简略方案
  3. 从C语言的角度重构数据结构系列(七)-数据结构堆知识求解数据流中的第K大元素
  4. 学习笔记(番外篇)——python批量转换图片格式
  5. C++,string类的指针,string类数组的指针 string *s
  6. python第三方库文件传输_Python第三方库在Excel文件读写中的应用
  7. C语言丨栈(二):链栈
  8. 300 秒搞定第一超算 1 万年的计算量,量子霸权时代已来? | CSDN 博文精选
  9. jsf用于页面判断的标签_用于操作和导航的JSF命令组件标签
  10. 《Redis实战》一2.1 登录和cookie缓存
  11. Vim插件管理插件Vim-plug
  12. 2022年G2电站锅炉司炉试题及在线模拟考试
  13. springboot配置log4j2
  14. 百度AI开放平台,共建AI生态
  15. 时间换算:UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8
  16. python打开json文件_python怎么读json文件
  17. 缩减openssl库体积
  18. 人类dna信息量_DNA 里面到底可以写入多少信息?
  19. 计算机网络资料整理《谢希仁版》
  20. volatile禁止重排序详解

热门文章

  1. 抖音“何青绫”金融知识整理(部分)
  2. cRARk的使用,破解rar密码
  3. CMMI-原因分析与解决(CAR)
  4. 有机晶体数据库_ChIN简介页:剑桥晶体结构数据库(CSD, 有机、金属有机物)
  5. 斯蒂芬·钦(Stephen Chin)骑着自行车在欧洲巡游
  6. 一文读懂舵机工作原理并运用(附代码)
  7. 法规标准-ISO 11270标准解读(2014版)
  8. linux 下 adb 安装apk
  9. Spring Cloud GateWay系列(三):路由规则动态刷新
  10. 【原】充电桩APP-原型设计