自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 从零开始搭建游戏服务器 第八节 角色创建登录流程开发

上一节我们创建了GameServer用于处理具体游戏业务逻辑。当GameServer启动时,会连接LoginServer进行注册。这一节我们基于这个模型来对GameServer进行开发,并实现角色的创建和初步登录流程。本节我们对角色创建和登录做了基础开发,要实际使用还需要增加很多的逻辑处理。比如创建角色时判断重名、角色数量。本节的内容比较多,大家可以先大概地看一下实现思路,具体代码可以不看,过段时间我将该架构整理得大概能用时,会将git地址公开出来由大家一起学习。

2024-04-07 13:54:30 1002 5

原创 从零开始搭建游戏服务器 第七节 创建GameServer

一些比较简单的、并发量较低的游戏,希望使用单体服务器,其实就在这LoginServer的基础上继续开发即可。但是一些需要能支撑高一些并发,并且希望做到能横向扩容的游戏,就需要用到分布式的思想来做。将其分成 登录服和游戏服。登录服用于提供客户端信息入口,处理账号鉴权和协议转发的功能。游戏服用于处理游戏业务的具体逻辑,可以设定不同的游戏服处理不同的功能。

2024-03-26 20:36:47 894

原创 从零开始搭建游戏服务器 第六节 合理使用自定义注解+反射 简化开发流程

当我们收到不同的协议号,我们添加了不同的if判断条件来反序列化协议,再根据不同的协议号调用不同的方法。这种方法十分低效且不安全。使用自定义注解+反射的技术,可以一劳永逸地解开我们的束缚,减少垃圾代码

2024-03-23 10:00:00 965

原创 从零开始搭建游戏服务器 第五节 Redis引入并实现生成账号Id

上一节我们在项目中引入了MongoDB作为持久化数据库,然后用了注册和登录两个例子分别展示了如何使用spring-data-mongo库进行数据插入与查询。持久化数据库将数据写入硬盘,存储安全性较高,并且硬盘成本便宜,可以长久存放大量数据并按需扩容。但是他有个缺点在于硬盘的io速度,较于内存底了不是一个数量级。而游戏玩家对于延迟是很敏感的,因此经常会使用缓存来进行热数据的存放,减少数据库的压力。

2024-03-20 16:53:57 826 2

原创 从零开始搭建游戏服务器 第四节 MongoDB引入并实现注册登录

游戏服务器中, 很重要的一点就是如何保存玩家的游戏数据.当一个服务端架构趋于稳定且功能全面, 开发者会发现服务端的业务开发基本就围绕着CRUD来展开,即业务数据的创建 \ 查找 \ 更新 \ 删除.本节内容我们就将MongoDB作为持久化数据库引入项目中.本节我们将MongoDB引入到项目中作为我们的持久化数据库来使用, 并通过注册登录的两个小例子, 来展示spring-data-mongo这个库的用法.

2024-03-20 00:06:30 1136 1

原创 从零开始搭建游戏服务器 第三节 Protobuf的引入并使用

Protobuf是Google公司开发的一种灵活,高效,自动化地序列化结构数据的方法,类似于XML、JSON、YAML等。但是它比上述格式更小、更快、更灵活。我们可以编写.proto文件定义数据的结构,然后用其提供的工具生成对应语言的代码。本节的讲东西比较简单, 主要是proto文件的编写与生成, 以及如何对protobuf打包与解包. 这些在后续我们多使用就能熟练.

2024-03-17 13:28:29 956

原创 从零开始搭建游戏服务器 第二节 Actor模型与应用

本节主要介绍Actor模型以及如何将其应用到我们的系统中。

2024-03-16 22:34:21 824

原创 从零开始搭建游戏服务器 第一节 创建一个简单的服务器架构

从零开始用java编写一个游戏服务器。涉及分布式开发、netty、mongodb、redis。没有难点,对新人友好。

2023-03-23 22:37:41 4507 7

原创 Nginx转发Nacos提示账号密码错误

版本问题,1.4.5版本将会解决,可先回滚至1.4.2版本及以前

2022-09-21 16:48:24 1268 5

原创 运行Gradle打出的jar包,运行时报错 ‘No main manifest attribute,in xxxx.jar‘ 和找不到引用包的问题

运行Gradle打出的jar包,运行时报错 ‘No main manifest attribute,in xxxx.jar‘gradle配置Main-Class和Class-Path

2022-09-07 10:20:22 3700

原创 ClickHouse安装部署流程(tgz版)

ClickHouse的部署安装

2022-04-06 16:18:37 1487

原创 Could not find method compile() 非换行原因

在新机器中导入了旧项目,发现gradle报错Could not find method compile()网上大部分都在说换行的事情,但是我现在的情况不是因为换行导致的。查阅文档发现 compile,runtime,testCompile,testRuntime在gradle7.0版本中被删除。上述的配置应分别改为implementation,runtimeOnly,testImplementation,和testRuntimeOnly。implementation 'com.google.pr

2021-09-05 13:07:39 3147 6

原创 lambda表达式的使用

lambda表达式的使用

2020-01-30 16:56:47 214

原创 redis配置集群的redis.config需要修改的参数

port 7000 // 端口号bind 192.168.249.66 // ipdaemonize yes // 开启守护进程dir "/opt/redis-5.0.4/cluster-test/data" // 集群的工作目录logfile "/opt/redis-5.0.4/cluster-test/log/cluster-7000.log" // 日志文件dbf...

2020-01-30 15:27:20 797

原创 《一个菜鸟游戏服务端的学习之路》第三章 服务端与客户端之间的协议传输

Netty服务端与客户端之间的协议传输

2020-01-17 19:32:52 1472

原创 properties配置文件在java中的使用

使用java.util.Properties包可以轻松实现properties文件的读取Main.javapublic class Main { public static void main(String[] args) throws IOException { Properties properties = new Properties(); loa...

2020-01-16 13:28:49 237

原创 《一个菜鸟游戏服务端的学习之路》第二章 Netty服务端与BIO客户端通信

第二章,Netty服务端与BIO客户端通信基于上一章的内容,我们学习了如何在IDEA中创建并导入Netty框架,并简单实现了一个可以接收BIO客户端发送来的String数据的服务端Demo。今天来聊聊如何发送数据到BIO客户端。

2019-09-28 00:28:50 366

原创 《一个菜鸟游戏服务端的学习之路》第一章 IDEA中Netty框架的导入和简单使用

IDEA中Netty框架的导入和简单使用一个netty的小demo,主要学习netty的导入,如何启动一个netty程序,如何监听客户端连接时间、如何对客户端发来的数据进行解析。

2019-09-23 21:54:04 1538

原创 IDEA中使用Maven报NoClassDefFoundError错误

IDEA中使用Maven报NoClassDefFoundError错误问题是在做netty的时候出现的,我使用maven导入了netty 4.1.6 Final包,运行时报了这么一个错误,说是没找到netty的class文件。看了一下编译导出后的web文件,发现在web文件中并没有netty包。检查一下项目编译的设置果然发现web-inf下没有lib目录,居然不会自己创建,有点坑啊。。...

2018-10-21 12:36:12 4084

原创 CentOS7服务器配置JavaWeb环境(Tomcat+MySql)

前言很多时候应聘java服务端开发时都会遇到的问题,你会配置服务器吗?你对Linux有了解吗?你有过Linux下环境配置的经验吗?今天写下这篇博客,目的是为自己以后应聘不再两眼一抹黑,同时跟大家交流一下经验的,有什么不同的见解或我有什么错误的地方,望大家指正。

2018-02-26 10:13:22 1232 1

原创 从零配置云服务器(Java web运行环境)(四、配置MySQL)

centos7配置MySql

2018-02-25 14:32:02 1067

原创 在IDEA中使用Spring框架

Idea中配置Spring框架

2018-02-01 16:28:47 43619 7

原创 从零配置云服务器(Java web运行环境)(三、配置Tomcat8)

三、配置Tomcat老规矩,先创建一个新的目录mkdir /usr/tomcat进入tomcat目录,看看是否创建成功。然后把安装包下好,我这里选择的是tomcat8.5.27版本。wget https://mirrors.aliyun.com/apache/tomcat/tomcat-8/v8.5.27/bin/apache-tomcat-8.5.27.tar.g...

2018-01-30 12:49:33 2379

原创 从零配置云服务器(Java web运行环境)(二、配置JAVA开发环境)

二、配置JAVA开发环境先进入我们的实力列表,右边进入远程连接。这里远程连接1输入远程连接密码后连接成功,接着输入系统登陆账号密码。(Unix系统输入密码都是不显示在屏幕上的,是连小星星都没有的。)登陆成功后我们先新建一个目录用来存放我们的javamkdir /usr/java进入java文件夹看看是否创建成功cd /usr/java#号

2018-01-29 10:29:04 1770

原创 从零配置云服务器(Java web运行环境)(一、配置安全组)

前言很多时候应聘java服务端开发时都会遇到的问题,你会配置服务器吗?你对Linux有了解吗?你有过Linux下环境配置的经验吗?今天写下这篇博客,目的是为自己以后应聘不再两眼一抹黑,同时跟大家交流一下经验的,有什么不同的见解或我有什么错误的地方,望大家指正。因为时间关系,我分为几篇博客进行讲解。那么开始吧,我这里选择的是阿里云的云服务器ECS,配置如下,我就不介绍怎么进行

2018-01-28 23:12:19 1134

原创 关于Android侧滑栏header点击事件空指针问题

关于header点击事件空指针问题,基本上是因为没有获取到header控件。 我们如果像写当前布局中的button一样普通地使用findViewById(R.id.user_image); 是会出问题的。其实findViewById前面默认有一个this. ,所以我们其实用的是view.findViewById(R.id.user_image); 而我这边user_img是写在header布

2018-01-19 20:57:41 364 1

原创 关于Sturts2中result的路径问题

name="action" namespace="/action" extends="struts-default"> name="Action_1" class="action.Action_1"> result name="success" type="redirect">/index.jspresult> name="

2018-01-17 09:51:43 720

原创 IDEA添加hibernate配置文件(包括cfg和hbm)

IDEA自动配置hibernate大家用Eclipse做项目的时候是不是写配置文件的时候都觉得,又要导jar包又要导约束好麻烦。那么有没有一种。。。 有啊,换IDEA啊。配置hibernate.cfg.xml在创建hibernate项目时有这么个选项 勾上的话,就会在创建项目在src文件夹下自动创建一个hibernate.cfg.xml。如果创建项目时没有勾选这个选项,我们...

2017-09-14 22:10:51 18946 10

原创 完成你的第一个JavaWeb项目——IDEA+Tomcat配置

引言因为种种原因,总之我开始学习JavaWeb的相关知识了。 那么大家都知道的,学习一门新技术最费时间的是什么? 对,就是他喵的配置环境。 那么我选择的IDE是JetBrains公司的IntelliJ IDEA 2017.1,服务器选择的是平民用具Tomcat 9。

2017-06-10 14:17:12 660

原创 为什么我的控件实例化后还是报空指针异常?

我的TextView明明实例化了,为啥setText时候还是给我报空指针异常啊!?

2017-05-30 00:12:30 1808

原创 初识Android ConstraintLayout

在5.20这天,终于闲了下来,把许久没更新的Android Studio给更到了2.3.2,然后发现多了好多之前没见过的玩意,其中包括这个新的布局方式ConstraintLayout. 作为自己的第一篇博客,写这个会不会太不自量力了。 不管怎么样,希望这能作为一个坚持写博的契机吧。

2017-05-20 21:17:38 385

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除