自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

focus-unchanged-thing

专注于纷繁快速变化中那些不变的东西

  • 博客(605)
  • 资源 (12)
  • 收藏
  • 关注

原创 使用FreeMarker生成代码

pom.xml // 引入FreeMarker包。Test.ftl // 指定的模板引擎。Main.java // 生成代码封装。

2022-12-20 10:56:39 1145

原创 【游戏服务器设计案例篇】感悟

1.记录index,而不是具体的内容。2.分为登陆时的处理 和 凌晨5点的处理

2021-12-18 18:50:06 2430

原创 [Lambda操作]1.filter 2.Comparator 3.flatMap 4.map 5.Predicate 6.findAny 7.Consumer 8.多重排序 9.分组 10.peek

1)key从大到小排序 List<String> list = privilegeMap.keySet().stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList()); if (list.size() == 0) { return -1; } return Integer.parseInt(list.get(0));.

2021-08-31 16:44:54 440

原创 减少git分支代码合并冲突神器之只格式化改变行的代码: 打开Only VCS changed text即可(无代码修改的话,这个选项是无法选中的)

1)ctrl+a全选代码2)ctrl+shifr+alt+L弹出框,选择第一个3)在选中ctrl+alt+L

2021-06-21 12:17:40 649

原创 Jenkins实现自动化部署(centos环境为例子)

1)下载jenkinshttps://www.jenkins.io/download/2)下载tomcat3)把jenkins.war放到webapps目录下4)为tomcat下面的sh加权限,并且必须以sudo方式启动tomcat5)打开jenkinshttp://localhost:8080/jenkins6)初次使用配置jenkins密码7)加权限并且查看密码cd /varsudo chmod -R 777 rootopen /var/r

2021-03-16 16:17:02 386

原创 【protobuf 2的使用】0.gitbash终端 1.pb在vscode中的的格式化和跳转 2.服务器:netty 3.客户端:creator 4.自定义Option(如添加msgid)

1)creator中使用protobufhttps://github.com/protobufjs/protobuf.js/blob/master/dist/protobuf.js

2021-01-27 23:21:21 729 1

原创 java应用程序发布jar2的2种方式 1.assembly.xml(线上) 2.fat-jar(工具类的发布)

nohup java -jar xxx.jar>log.txt &

2020-03-31 10:21:03 661 1

原创 [python(最简单,但是还是推荐用nginx)]1.cd dist 2.python -m SimpleHTTPServer 3.http://localhost:8000

Last login: Tue Jan 7 18:37:45 on ttys000➜ ~ /Users/jianan/Documents/work/sayabc-gamification-demo01-all/MathClassroomH5/Project/IFTTTSample/build/web-mobile➜ web-mobile git:(master) python -m S...

2020-01-07 18:52:18 775 1

原创 【github ssh公钥】1.添加 2.设置下user.email和user.name提交时有值

收到如下类型的报错:Warning: Permanently added the RSA host key for IP address '192.30.253.113' to the list of known hosts. Permission denied (publickey). fatal: Could not read from remote repository. Ple...

2018-02-26 15:05:27 3514

原创 使用git高效管理项目

简单在一个目录下拉取别人的一个工程1.在任何一个目录下新建一个文件夹比如:work,然后cd 切换到工作目录2.仓库初始化git init3.从某个地址拉取工程到自己的工作目录git clone [email protected]:2dxproj/AdventureEliminate.git备注:比较大的工程往往用http协议下载不下来,这...

2015-04-01 17:48:24 4714

原创 mac下刚安装的mysql忘记密码的解决办法

-----情景:总是出现类似的错误-----C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqlERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO)-----解决方案-----1.没有忘记mysql登陆密码的话(...

2013-12-05 14:28:57 1064

原创 【使用postman发送post请求】

1.最大的好处莫过于我可以记录下来曾经做过的东西,需要账号登录。这样子选择json格式提交数据,可读性强。2.各种请求方式都支持。

2024-03-26 11:04:30 404

原创 【内网验证下mongodb密码】

【代码】【内网验证下mongodb密码】

2024-03-25 18:08:20 103

原创 【vscode打开多文件夹】 1.设置编辑器为护眼绿色 2.可调整小文件夹的位置

1)将文件夹添加到工作空间中。

2024-03-25 10:50:34 406

原创 【非常非常非常重要的结论!!!!】以CompletableFuture为例子(深刻理解父任务等待子任务,但是父任务占满线程池导致子任务无法程序最终程序卡死的问题) 2.CPU缓存

思考:用arthas的jvm命令查看下,其实并不是死锁,只是父任务把线程池占用满了,子任务无法执行了,但是父任务又等待子任务,程序卡死那了。xdb中,任何之中又提交其它的任务,同时出现get等待,则是游可能出现卡死的问题。2)任务套任务(全回调的方式),但是不出现父任务等待子任务时,是不会卡死那的。思考:可以看出来,只要不出现“父任务等待子任务完成“,则不会有任何问题。如果是: 一个事务中,又call其它,这属于同步执行,是不会有任何问题。1)父任务等待子任务时,出现程序卡死的问题。

2024-03-24 10:21:41 250

原创 【idea做lua编辑器】1.同时安装EmmyLua和Luanalysis这2个插件IDEA就报错打不开,保留EmmyLua插件即可 2.还有个插件叫EmmyLuaCodeStyle 3.坚持用jb

删除出错的lua插件即可。

2024-03-23 19:20:25 448

原创 windows设置mongodb为服务,并且开机自动启动

2)添加服务 // 由于已经添加环境变量,所以mongod.exe是可以直接找到的,这个路径必须是完整路径。1)必须以管理员身份运行才可以,不然添加没报错提示,但是刷新还是没服务。3)在服务--》属性--》启动 (并且设置为自动启动)

2024-03-23 18:37:53 123

原创 windows下设置redis为开机启动

3)此电脑->管理->服务和应用程序 // 也就是桌面上那个文件夹。找到Redis,修改为自动启动。2)注册Redis服务。

2024-03-23 12:39:08 98

原创 通过rmi实现远程rpc(可以认为java自带Dubbo RPC)

发现公司几个运行10年的游戏,用的竟然是rmi,而我只听说过dubbo 和 基于netty的rpc,于是就补充了下rmi。其次,是最近对于跨服的思考,如何避免回调。必须抛出RemoteException异常。必须实现:Serializable接口。2.基于java的序列化和反序列化。1.rmi可以看出来非常简单。游戏服之间的交互 //3.已解决粘包问题。

2024-03-19 15:25:18 291

原创 nginx作为tcp的负载均衡

之前总以为nginx只能当静态资源web容器和web的负载均衡,现在才知道原来也可以当tcp的负载均衡。现在我们项目测试服就是一个nginx对应了2个测试服的负载均衡。

2024-03-06 18:04:55 347

原创 guava的回调方案

【代码】guava的回调方案。

2024-03-06 10:37:11 112

原创 玩家切换场景时的一个小实验

【代码】玩家切换场景时的一个小实验。

2024-03-01 12:54:57 149 1

原创 [通过jenkins进行部署java程序到centos上] 1.rz文件上传

【代码】java程序centos部署。

2024-02-29 15:01:43 581

原创 windows和centos上查询端口占用情况,并且杀死进程

杀死占用端口的进程 // 也就是LISTENING后面的那个端口。查询10000是否被占用。

2024-02-27 15:25:29 100

原创 [SpringDataMongodb开发游戏服务器实战]

七号堡垒作为成功的商业项目,告诉我:其实数据是多读少写的,有修改的时候直接改库也是没问题的这样子rpc获取到的数据也足够准确。因此,我决定基于: SpringBoot+netty+mongo+pb 写一个简单而又足够上线的框架。xdb其实足够完美了,现在回想一下,觉得有点复杂,我们不应该绑定语言,最好有自己的架构思路。华珺的Player数据管理思路,将所有的数据都存放Role上,这样子获取是十分的简单。

2024-02-24 21:52:17 276

原创 [CountDownLatch] 1.实现等待TcpServer启动完毕后再发射事件 2.使用CompletableFuture代替CountDownLatch将阻塞封装到内部

也不能说:直接就启动一个线程,不然没办法发射出“服务器启动”这个事件。有时候,我们希望NettyServer启动时不能说卡主主线程。这时就可以使用此类执行完毕后,通知下主线程。总结:可以看出来,是单独的线程启动,但是可以控制住顺序了。

2024-02-22 23:59:23 282

原创 SpringBoot线上打包

也就是我们的jar,配置和启动脚本都已经放到指定目录。7)双击bin/start.sh就可以运行起来了。

2024-02-21 13:31:27 228

原创 java热更新

2024-02-20 16:38:03 109

原创 SpringMVC 1.请求参数检查 2.全局异常处理 3.请求参数封装为Pojo

GlobalExceptionCatch.java // 全局异常捕获。LogicException.java // 逻辑异常封装。ResponseEntity.java // 返回值封装。ErrorEnum.java // 枚举所有的错误。IReuqest.java // 用于检查接口。

2024-02-08 14:17:56 925

原创 [@PostConstruct] 在Tomcat启动之前,会被调用,可以获取到Autowired中的内容

【代码】[@PostConstruct] 在Tomcat启动之前,会被调用,可以获取到Autowired中的内容。

2024-02-08 14:12:39 89

原创 创建新SpringBoot工程时pom文件内容

【代码】新SpringBoot工程pom。

2024-02-04 17:36:37 128

原创 docker环境搭建及其安装常用软件

【代码】部署常用命令。

2024-01-26 11:43:41 462

原创 客户端请求+返回 服务端之间的请求和返回 实现rpc通信

2.由于客户端直连的是游戏服,如果工会,匹配之类的服务是单独的服务的话,必然要进行游戏服到业务服之间的转发,我们是否需要再转发时单独定义Req和Res就是我们考虑到的需求。3.在vega项目中,我们选择了定义了内部协议的req和res,而不是像热江一样做了统一的封装,看起来麻烦了一点,但是实际上却是非常的清晰。1.无论什么类型的游戏,我们都会有rpc通信的需求。

2024-01-24 16:56:17 1029

原创 【arthas诊断CPU和内存问题实战】thread -n 5 + cpu火焰图 +内存火焰图

很清晰看出来:是心跳占用时间长,我们可以结合trace进一步分析到底哪个类中哪个方法占用时间长。看下蓝色的就知道哪个对象最多,目前看出来是: HashMap啥的。可与看出 SceneWorker占比最高,但是是哪个类中哪个方法则不是太清楚。因此最终使用trace去定位到底哪行代码占用cpu最长。step1: 先查看哪个线程占比cpu最高。横向:表示执行时间占比。2.输出火焰图采样html。通过线程信息分析CPU。通过线程信息分析CPU。1.开始内存火焰图采样。step2.分析代码。通过火焰图分析CPU。

2024-01-24 11:15:48 748

原创 【通过docker安装常用软件镜像】1.镜像 2.安装 redis,jdk,nginx

5.再查看下,可以看出redis运行起来了。2.下载redis软件。3.查看下当前的进程。

2024-01-22 18:16:14 470

原创 【centos7安装docker】

1.查看下centos版本,docker要求高于3.10。5.启动docker。

2024-01-22 15:02:32 889

原创 1.设置转换器去掉SpringDataMongodb中的_class 2.通过环境获取变量

【代码】去掉SpringDataMongodb中的_class。

2024-01-21 22:15:11 393

原创 【lettuce-排行榜】

这次游戏中台采用lettuce的zset完成游戏内的本服和跨服排行榜,因此写一下案例。

2024-01-20 17:07:35 362

原创 【arthas诊断线上java应用】1.下载arthas 2.常用arthas命令 3.jad快速查看class内容

想起来之前的面试,有一次问到:假如线上出现cpu飙升,和内存问题,如何排查?思考:可以看出来,arthas对java应用没有任何入侵。1)下载arthas。

2024-01-19 16:07:40 326

原创 【CompletableFuture完成游戏服务器中各类业务线程间的交互】1.玩家线程和好友线程的交互 2.玩家线程和排行榜线程的交互 3.supplyAsync(带返回值的)和runAsync

2.任务有依赖关系,并且等待所有任务执行完毕。1.IO线程执行阻塞任务,之后回到逻辑线程。

2024-01-19 15:14:46 543

Unity 3D网络游戏实战(全)

Unity 3D网络游戏实战(全) Unity 3D网络游戏实战(全) Unity 3D网络游戏实战(全)

2018-08-10

JavaScript设计模式与开发实践-源代码

JavaScript设计模式与开发实践-源代码 JavaScript设计模式与开发实践-源代码

2018-06-03

JavaScript函数式编程

JavaScript函数式编程_PDF电子书下载 高清 带索引书签目录_(美)佛格斯著_北京:人民邮电出版社_P204_2015.08

2018-06-01

node.js实战

node.js实战,学习node.js开发必读书籍,npm作者大作 node.js实战,学习node.js开发必读书籍,npm作者大作

2018-05-31

编写可维护的JavaScript

编写可维护的javascript 编写可维护的javascript 编写可维护的javascript

2018-05-28

JavaScript应用开发实践指南.pdf

JavaScript应用开发实践指南 JavaScript应用开发实践指南

2018-05-17

markdown写的简历模板

作为程序员,当然应该不用什么word之类的来写简历,我们应该使用简洁美观的markdown编辑器来完成

2018-04-25

MASM汇编语言新手入门

MASM汇编语言新手入门

2012-03-30

C++编写的图书馆管理系统

C++编写的图书馆管理系统

2012-03-30

C++ 0-1背包问题源代码

C++ 0-1背包问题源代码

2012-01-03

航海乘务管理系统C++源代码

航海乘务管理系统C++源代码.

2012-01-02

图书馆管理系统C++源代码

C++开发的图书馆管理程序源代码

2012-01-02

空空如也

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

TA关注的人

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