大型网络游戏服务器结构演变
文章平均质量分 61
架构项目起步之路
好一个大布丁
手游服务器研发工程师。有参与射击类型手游《雷霆战机》。MMO《末日危机》,SLG+ARPG《末日生存》开发经验。现在主要研究全球游戏服务器SLG类型游戏开发。研究分布式和微服务在游戏服务器中的应用。
展开
-
计算机组成原理
【代码】计算机组成原理。原创 2024-09-19 15:27:56 · 224 阅读 · 0 评论 -
CA证书签发系统(web版)
一个pki证书申请,审核和证书下载安装的管理系统软件,通过调用java自带的工具,将信息存入数据库,同时也是一个学习ssh框架的好demo,系统采用Java自带的加密算法实现CA证书的签发和发布,采用mvc模式实现证书下载,安装和统一管理。系统采用java自带秘钥工具生成CA证书,通过WEB形式展现出来,管理员审核生成证书,普通用户提交证书信息。采用idea编译环境,采用maven结构项目,可配置系统环境,方便查询,优化代码。详细代码:https://github.com/twjitm/pki-new。原创 2023-02-06 22:46:00 · 1736 阅读 · 1 评论 -
java mongodb orm 实现-基于mongodb-driver开发的ORM(二:连接维护和主键自增)
导论:MongoDB是一个非常有前途的数据库,MongoDB官方对自己的定位是通用数据库,其实这个定位跟MySQL有些像。虽其流行度还远未达到MySQL的水平,但笔者有个可能不恰当的比较,MongoDB就像N年前的MySQL,随着时间的推移,会变得越来越强大,也会越来越流行。上篇文章说到,通过mongodb-driver原生包进行开发,封装易用的接口,降低使用门槛,去除冗余的代码。使得项目更简洁一、:连接维护(编码/解码)二、:自定义-主键自增Ticket一:连接维护(编码/解码)1.1 连接c原创 2021-12-25 15:37:03 · 1270 阅读 · 0 评论 -
java mongodb orm 实现-基于mongodb-driver开发的ORM(一:功能总览)
导论:MongoDB是一个非常有前途的数据库,MongoDB官方对自己的定位是通用数据库,其实这个定位跟MySQL有些像。虽其流行度还远未达到MySQL的水平,但笔者有个可能不恰当的比较,MongoDB就像N年前的MySQL,随着时间的推移,会变得越来越强大,也会越来越流行。由于基于mongo 官方提供的api使用比较复杂,不方便与业务开发,所以本项目基于官方api进行封装,简化了关于文档的查询,创建以及索引维护。m-dbEnglish 简体中文简介这是个什么?欢迎使用本项目。本项目基于mo原创 2021-11-28 17:58:30 · 1534 阅读 · 0 评论 -
Netty游戏服务器开发实战(14):游戏推送的设计
导读- 本篇主要介绍如何实现游戏服务器推送消息到客户端或者服务器和服务器之间进行消息推送,结合Netty组件,设计一个具有推送功能的高性能游戏服务器框架。什么是推送?为何需要推送?首先,我们要明白什么是推送?推送,就是把服务器消息或者某个客户端的消息发送给另外一个客户端或者是服务器,一般对于客户端来说是一个被动接受消息的过程。在游戏服务器中,游戏活动的开始...原创 2019-05-25 10:43:18 · 2262 阅读 · 0 评论 -
Netty游戏服务器实战开发(13):游戏中的配表规则
在一个游戏开发过程中,少不了和策划,客户端等同学打交道。应为一个完整的游戏开发团队,有如下人员组成:1:服务器开发人员2:客户端开发人员3::策划4::美术5:其他其中还会分很多细节,比如策划可以分为场景策划,数值策划,玩法策划等等,但是作为一个策划人员不仅能够有好的游戏思想,最重要的是学会游戏中的配表。这是一个策划的基本功。规则很重要,游戏中的配表规则其实大部分主要是用来配合程序完...原创 2019-03-03 23:06:13 · 2035 阅读 · 0 评论 -
Netty游戏服务器实战开发(12):线程任务组件开发
Netty游戏服务器实战开发(11):原创 2018-12-15 11:51:48 · 1401 阅读 · 0 评论 -
Netty游戏服务器实战开发(11):Spring+mybatis 手写分库分表策略(续)
在大型网络游戏中,传统的游戏服务器无法满足性能上的需求。所以有了分布式和微服务新起,在传统web服务器中,我们保存用户等信息基本都是利用一张单表搞定,但是在游戏服务器中,由于要求比较高,我们不能存在大表操作,即分库分表策略。在以前的文章中有关介绍分库分表的,下面我们来实战一下,首先我们做一个这样的计算。在博主开源的游戏服务器中有这样一个场景:玩家数据保存到player表中,其中将游戏数据库分为1...原创 2018-10-23 20:56:58 · 1423 阅读 · 1 评论 -
Netty游戏服务器实战开发(10):Netty结合kafka实现分布式消息队列
在分布式游戏服务器系统中,消息处理队列主要解决问题就是解耦系统中的业务,使得每个系统看起来功能比较单一,而且解决一些全服数据共享等问题。通常我们知道kafka是作为消息队列比较火的一种方式,其实还有(Active MQ,Rabbit MQ,Zero MQ)个人觉得kafka比较好用点,哈哈,习惯吧。同样我们来复习kafka基础。kafka基础。的内容来介绍kafka的基本安装。首先我们要...原创 2018-10-19 18:00:13 · 8901 阅读 · 10 评论 -
Netty游戏服务器实战开发(6):Netty整合Zookeeper实现分布式服务发现与注册
1:Zookeeper基础安装zookeeper。当然,很多时候我们会在Windows上开发,所以,我们需要在本地搭建一个zookeeper环境。方便开发过程中的测试。首先我们去Apache上下载zookeeper。https://zookeeper.apache.org/下载下来后解压得到如下文件打开conf里面的zoo_simple.cfg ,拷贝一份,重新命名为zoo.cfg修改如...原创 2018-09-19 11:52:34 · 5664 阅读 · 6 评论 -
Netty游戏服务器实战开发(5):利用Netty打造轻量级RPC组件
简介:什么是RPC?RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样。RPC 可基于 HTTP 或 TCP 协议,Web Service 就是基于 HTTP 协议的 RPC,它具有良好的跨平台性,但其性能却不如基于 TCP 协议的 RPC。会两方面会直接影响 RPC 的性能,一是传输方式,二是序列化。Net...原创 2018-09-18 12:34:43 · 3105 阅读 · 3 评论 -
Netty游戏服务器实战开发(4):自定义消息池化处理
通过上篇《Netty实战开发(3):自定义消息》我们都知道,客户端发送过来的消息我们服务器通过自定义编解码实现解析每条消息,并且做对应的处理,但是上篇介绍的重点是消息的编解码,接下来我们介绍消息的处理,并且利用线程池化技术实现消息队列处理。首先我们来复习一下线程池模型。...原创 2018-08-26 15:39:06 · 1449 阅读 · 1 评论 -
Netty游戏服务器实战开发(3):自定义私有协议栈
自定义私有协议栈开发,其实就是自己封装一套符合自定义数据包结构的编码器和解码器,从而满足我们的业务需求。通常我们数据包拆分,一部分为包头,一部分为包体,一个数据包就有两部分构成。如图所示对于数据包,我们进行细化,每个部分都有很多基本元素组成,利用这些基本元素,我们能够实现通过解析数据包和封装数据包,能轻松的实现 自定义协议栈的开发。在包头中我们用一个short类型来表示魔...原创 2018-07-31 14:50:40 · 1350 阅读 · 3 评论 -
Netty游戏服务器实战开发(2):ByteBuf - 字节数据的容器
目錄Introduction 开始 Netty-异步和数据驱动 Netty 介绍构成部分关于本书 第一个 Netty 应用设置开发环境 Netty 客户端/服务端 总览写一个 echo 服务器 写一个 echo 客户端 编译和运行 Echo 服务器和客户端总结 Netty 总览 Netty 快速入门 Channel, Event 和 I/O 什么是 Bootstrappi...转载 2018-05-10 17:50:00 · 2174 阅读 · 0 评论 -
Netty游戏服务器实战开发(1):Netty 的自带解码器
LineBasedFrameDecoder LineBasedFrameDecoder是回车换行解码器,如果用户发送的消息以回车换行符作为消息结束的标识,则可以直接使用Netty的LineBasedFrameDecoder对消息进行解码,只需要在初始化Netty服务端或者客户端时将LineBasedFrameDecoder正确的添加到ChannelPipeline中即可,不需要自己重新实现一套换...转载 2018-05-16 15:36:22 · 3194 阅读 · 0 评论 -
Netty游戏服务器实战开发(15):游戏服务器中的数据缓存
导读游戏服务器缓存作用非常重要:很大部分决定游戏服务器性能问题。缓存的作用在很多游戏服务器开发过程中,有需要提前加载到内存中的数据,有不需要加载到内存中的数据,当然,加载到内存中的数据可分为字典数据和部分玩家数据。比如:配表信息,玩家查询信息,玩家基础信息等。通常我们使用redis作为一个缓存中间件,当然,redis不仅用于游戏服务器,也适用于很多传统互联网行业。是一款优秀的KV缓存数据库...原创 2019-08-31 15:21:10 · 3005 阅读 · 7 评论