游戏类型:ARPG横板格斗过关手机网游,类似王者之剑,DNF。

客户端unity,碰撞判定在客户端,AI和伤害运算在服务端。峰值单服在线2800。

netty,protobuf,mysql。

  • 指令设计不合理,粘包时出现异常

原始设计过于简单,没有指令队列和分类的概念。当粘包指令同时执行时,发生串行指令被并行执行的情况。

解决:增加每个角色的指令队列,指令按照队列执行。增加指令的分类:比如序列指令,覆盖指令(后一个可覆盖前一个,比如位置同步指令),用户同步序列指令(比如登录选择角色相关的指令)。

  • 变速齿轮和内存修改工具导致的指令异常。

可以通过指令队列和指令的有效性检查来解决一部分修改问题,但是由于碰撞判定是客户端的物理引擎,这个坑没有彻底解决。

  • 开新服的时候,流量脉冲耗尽数据库连接。

登录模块可以考虑通过增加排队机制来解决。

  • 登录踢人或者断线后登录出现cache-DB不同步

离线处理没有同步处理好,完善logout和login的处理逻辑。

  • 拍卖功能出现卖两次,服务器重启之后,第二个购买的装备丢失。

在统计数据中观察到了该异常,但是没有及时重视和解决,累计后坏影响累计越来越多。上线前最好能准备关键数据的一致性检查工具,也许会好些。

  • 多语言文件最好能对客户端进行更新
  • protobuf

手游为了节省带宽,所以很多指令中,都是只发部分字段的变化值。当要发0的时候,用-1来替代。在指令和协议设计的时候,预先考虑进来会比较好。

  • 对象设计粗糙

随着策划的需求膨胀,对象膨胀之后没有进行有效的重构和重新设计,导致后期影响开发效率。

  • boneCP死锁

原因不明,并发200个左右数据库连接的时候随机出现,最后没有研究,通过更换连接池解决。

原文

http://www.cnblogs.com/fumingX/p/3567167.html

转载于:https://www.cnblogs.com/cfas/p/5823460.html

看到一个伙计遇到的服务端编程遇到的问题 赶紧复制过来相关推荐

  1. 急速rust服务器管理_Rust 与服务端编程的碎碎念

    Rust 是 Mozilla 推出的一门系统编程语言,非常看重内存安全,是一门非常优秀的语言.Mozilla 用它构建了其下一代的浏览器内核 servo,其工程能力毋庸置疑. 那么,Rust在服务端编 ...

  2. 新书预告:《Linux 多线程服务端编程——使用 muduo C++ 网络库》

    看完了 W. Richard Stevens 的传世经典<UNIX 网络编程>, 能照着例子用 Sockets API 编写 echo 服务, 却仍然对稍微复杂一点的网络编程任务感到无从下 ...

  3. Qt中TCP服务端编程

    文章目录 1 Qt中的TCP服务端编程 1.1 TCP服务端编程介绍 1.2 Qt中的TCP服务端编程 1 Qt中的TCP服务端编程 1.1 TCP服务端编程介绍 网络中的服务端: 服务端是为客户端服 ...

  4. 《Linux多线程服务端编程:使用muduo C++网络库》书摘6.6.2节

    6.6.2 常见的并发网络服务程序设计方案 W. Richard Stevens 的<UNIX 网络编程(第2 版)>第27 章"Client-ServerDesign Alte ...

  5. Rust 与服务端编程的碎碎念

    Rust 与服务端编程的碎碎念 https://zhuanlan.zhihu.com/p/30028047 Rust 是 Mozilla 推出的一门系统编程语言,非常看重内存安全,是一门非常优秀的语言 ...

  6. Linux多线程服务端编程学习(四)finger服务的实现

    源码下载以及安装点击链接https://blog.csdn.net/YoungSusie/article/details/90021742 分类 Muduo网络库编程 学习笔记 例 七步实现finge ...

  7. PostgreSQL 30天 培训视频(SQL基础,备份恢复,HA,服务端编程,大数据,内核,应用案例)

    Postgres2015全国用户大会将于11月20至21日在北京丽亭华苑酒店召开.本次大会嘉宾阵容强大,国内顶级PostgreSQL数据库专家将悉数到场,并特邀欧洲.俄罗斯.日本.美国等国家和地区的数 ...

  8. 《Linux多线程服务端编程:使用muduoC++网络库》学习笔记

    文章目录 第1章 线程安全的对象生命期管理 1.1 当析构函数遇到多线程 1.1.1 线程安全的定义 1.1.3 线程安全实例 1.2 对象的创建很简单 1.3 销毁很难 1.4 线程安全的Obser ...

  9. postgresql最全整理资料,PostgreSQL 30天 培训视频(SQL基础,备份恢复,HA,服务端编程,大数据,内核,应用案例)

    转载自:http://blog.163.com/digoal@126/blog/static/16387704020141229159715/ 希望通过这些视频帮到一些朋友, 同时对视频中的错误点烦请 ...

最新文章

  1. nagios部署安装中篇
  2. android 保存数据到setting中_文章如何保存在数据库中
  3. Copy修饰的NSArray
  4. JavaScript入门(part1)--初识JavaScript
  5. MPAndroidChart LineChart 折线图 你要的都在这里了
  6. 如何添加数据到session中
  7. [Javascript_库编写]创建自己的“JavaScript库”
  8. 【C#2.0】发挥匿名委托的威力!
  9. 18.外部相机校准——旋转(Rotation),R是什么样子的,绕Z轴旋转的例子,齐次坐标旋转_2
  10. 【Excel从头开始】-3 从网页导出数据到Excel
  11. 微信小程序自定义拍照和H5调用摄像头拍照
  12. imdisk虚拟光驱安装linux,imdisk使用教程_Imdisk工具使用方法介绍_imdisk_imdisk虚拟光驱...
  13. RGB格式图片转YUV图片
  14. [软件发布]2007考研倒计时软件(完整版+绿色版)
  15. docker 常用命令
  16. Python多线程爬虫获取电影下载链接
  17. SparkSteaming整合Kafka的方式
  18. 浅浅讲解下Linux内存管理之CMA
  19. 2022-2028全球2-氨基-5-甲基吡啶行业调研及趋势分析报告
  20. tomcat和servlet的关系及区别

热门文章

  1. PingPing隐私政策
  2. 华为防火墙配置目的nat
  3. 宏替换、条件编译、头文件展开
  4. 2021年R2移动式压力容器充装考试总结及R2移动式压力容器充装模拟考试
  5. [Minecraft]基于Forge的1.8.9MOD开发教程——第一讲:搭建开发环境
  6. 成功解决FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\niu\\AppData\\Local\\Temp\\p
  7. HP ELITEDESK 880 G2 HACKINTOSH
  8. Linux下视频服务器的实现(流媒体Helix Server)
  9. IFS发布新版本9 让敏捷性成为企业的标配
  10. lisp实战文库_autolisp教程pdf