自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

流子的专栏

https://github.com/jiangguilong2000/gamioo

  • 博客(324)
  • 资源 (10)
  • 收藏
  • 关注

原创 静态代码自动扫描p3c的使用

当一家公司上了一定的规模,项目越来越多,代码也越来越庞大,然后就是各种五花八门的代码格式、代码规范,通过主程们code review 耗时耗力,很多主程也缺少主观能动性和精力去cover code review这事项,如果有东西能自动化去检查团队成员的编码规范,这样就可以大大的提高代码质量,也可以让核心人员从code review 中解脱出来,本文提到的P3C-PMD就是这种神器。

2022-02-07 16:31:21 2850

原创 链路跟踪Jaeger使用总结

Jaeger是一款广受欢迎的开源分布式链路跟踪系统,兼容OpenTracing API,且已加入CNCF开源组织。主要功能是聚合来自各个异构系统的实时监控数据。对一些常用的框架通过插件可以达到无侵入式跟踪,比如Apache HttpClient,Elasticsearch,JDBC,Kafka,Memcached,Mongo,OkHttp,Redis,Spring Boot,Spring Cloud,要通过Jaeger将Java应用数据上报至链路追踪控制台,首先需要完成埋点工作。

2022-02-07 15:25:56 8709

原创 如何用 APT(Annotation Processing Tool)自动生成代码

我们很多人都写过代码自动生成的工具,比如用python结合moko模板引擎,或者java 结合freemarker模板引擎,protoc 等,实现解析策划数据类,proto协议类,或者数据库层的实体类。大大节省了我们开发的时间,让我们可以懒得光明正大。那么,有没有办法当你写好协议后,只要一保存编译,相关的协议接收和发送类的接口就自动实现了呢?答案是有的。注解处理器是(Annotation Processor)是javac的一个工具,用来在编译时扫描和编译,处理注解并生成锁期望的代码,提高生产效率。

2022-02-05 21:23:25 1271

原创 Java基准测试工具JMH使用

JMH,即Java Microbenchmark Harness,这是专门用于进行代码的微基准测试的一套工具API。JMH 由 OpenJDK/Oracle 里面那群开发了 Java 编译器的大牛们所开发 。何谓 Micro Benchmark 呢? 简单地说就是在 方法层面上的 benchmark,精度可以精确到微秒级。本文主要介绍了性能基准测试工具 JMH,它可以通过一些功能来规避由 JVM 中的 JIT 或者其他优化对性能测试造成的影响。

2022-02-05 17:52:30 9939

原创 Prometheus的使用总结

Prometheus 是一套开源的系统监控报警框架。它受启发于 Google 的 Brogmon 监控系统,由工作在 SoundCloud 的前 google 员工在 2012 年创建,作为社区开源项目进行开发,并于 2015 年正式发布。2016 年,Prometheus 正式加入 Cloud Native Computing Foundation(CNCF)基金会的项目,成为受欢迎度仅次于 Kubernetes 的项目。2017 年底发布了基于全新存储层的 2.0 版本,能更好地与容器平台、云平台配

2021-12-29 12:11:21 2992

原创 吐槽下Nacos服务发现

1.注销实例的API或者SDK(deregisterInstance),会导致该条记录消失,如果只是modifyinstance,会导致永远驻留在数据中2.游戏区做了迁移或者IP漂移的话,老的脏数据还是会在服务器列表里,没法通过zoneid去覆盖,只能通过人工去把该节点下线3.目前为了减少线程占用,dir和game的底层用的是nacos API,基于http client封装,但为了实时同步(subscribe),dir服又同时用了nacos SDK4.用Nacos SDK 的话,进程会新增10几个线

2021-11-26 10:57:33 3920

原创 k8s及常用指令使用总结

Kubernetes (K8S) 是由Google设计的用于自动化部署、大规模可伸缩、管理容器化应用程序的开源的容器编排引擎,目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。 传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。

2021-10-26 17:31:50 1627 1

原创 我眼中的OpenTracing

分布式链路跟踪最先由 Google在 Dapper论文中提出的一套链路追踪的 API 规范,支持多种编程语言,与平台无关、与厂商无关,使得开发人员能够方便的添加(或更换)链路跟踪系统的实现,虽然OpenTracing不是一个标准规范,但现在大多数链路跟踪系统都在尽量兼容OpenTracing。目前符合这API标准的就有 SkyWalking,Jaeger,Zipkin,Open Telemetry,Pinpoint、CAT等等

2021-10-22 15:47:42 790

原创 算数几何的绘制

算数几何的显示绘制,可用于几何图形的的旋转,坐标转换,移动等直观验证

2021-09-18 11:21:09 296

原创 VirtualThread Pin的处理总结

Pin的状态指的是VirtualThread在freeze时无法让出Carrier Thread(协程执行时挂载的物理线程)。主要有两种情况下会导致Pin:VirtualThread的调用栈包含JNI frame。因为JNI调用的实现是C++代码,可以做的事情非常多,例如它可以保存当前Carrier Thread的Thread ID,如果这时切换出去,那么下一次执行时,如果另一个Carrier Thread来执行这个协程,将会产生逻辑错误(Carrier Thread的ID不一致);VirtualThr

2021-09-10 21:02:40 523

原创 Unity3D 一些工具总结

插件EasyTouch插件

2021-08-20 15:38:47 1675

原创 LOG4J2-MDC-全链路跟踪等功能研究

MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 、logback及log4j2 提供的一种方便在多线程条件下记录日志的功能。MDC 可以看成是一个与当前线程绑定的哈希表,内部是基于threadLocal实现,可以往其中添加键值对。MDC 中包含的内容可以被同一线程中执行的代码所访问。当开启isThreadContextMapInheritable属性后,当前线程的子线程会继承其父线程中的 MDC 的内容。当需要记录日志时,日志框架会自动从 MDC中获取所需

2021-08-10 14:54:38 2317

原创 谈谈对Angular,Vue,React 的认识

Vue和React两个JavaScript框架都是当下比较受欢迎的。不同点:Angular (74.8K star)是基于 TypeScript 的 Javascript 框架。由 Google 进行开发和维护,它被描述为“超级厉害的 JavaScript MVW 框架”。React (172K star) 被描述为 “用于构建用户界面的 JavaScript 库”,是Facebook创建的JavaScript UI框架,它支撑着包括Instagram在内的大多数Facebook网站。React与当时

2021-07-22 14:32:01 407 1

原创 Docker使用总结

Docker 是一个能够把开发的应用程序自动部署到容器的开源引擎。也就是说Docker跟Vmware等虚拟机软件相比,它是开源的。一个原生的Linux容器格式,Docker中称为libcontainerLinux内核的命名空间(namespace),用于隔离文件系统、进程和网络文件系统隔离,进程隔离,网络隔离,资源隔离与分组,写时复制,交互式shell...

2021-07-07 15:40:32 498

原创 酷炫的IDEA启动图黑客主题来了

2021年4月份的某一天,IDEA提示我版本更新,我更新完,在等待移动的过程中,我期待有个酷炫的画面出来,就像幻视绚丽登场。期待中的画面:实际等来的画面:眼花缭乱的让我仿佛感觉到期待的幻视穿上了东北花棉袄妖娆而来。让点泪奔~~~忍了他好几个月了,端午节闲来没事,今天终于有点时间换上了大师级启动图。先上图,那么,我们如何去替换呢?1.先退出正在运行的 IDEA, 避免出现冲突2.找到文件 idea 安装路径/lib/resources.jarmacOS IntelliJ IDEA.a

2021-06-14 13:42:26 926 2

原创 Tcaplus使用总结

一、Tcaplus是什么?游戏数据库 TcaplusDB 是专为游戏设计的 NoSQL 分布式数据存储服务,支持 Protobuf 接口访问,Tcaplus 将 Cache 与硬盘结合,追求高性能的同时,也节省成本,很好地支持全区全服和分区分服,并针对游戏爆发增长和长尾运维特点提供不停机扩缩容、备份容灾、快速回档等全套解决方案,安全可信赖。目前应用于《王者荣耀》、《穿越火线》、《火影忍者》等数百款流行游戏。二、使用步骤特别要注意的是,在购买时,连接协议里选择TDR,这样就支持xml表定义了。如何定义

2021-06-11 17:40:24 1151 4

原创 《万国觉醒》之游戏战报FreeMarker模板引擎实现

这两天在玩《万国觉醒》,看了下战报,每一回合伤害,技能,buf明细都写的很详尽,如果自己去实现,该怎么做呢?想想,只要有个记录战斗明细的对象+模板引擎,一整合,需要的结果就出来了,就拿接口很丰富的freemarker练手。好,我们先来学习下这个模板引擎的基础知识。

2021-06-09 10:39:44 1568

原创 上标下标汇总

0到9小数字符号:上标:º ¹ ² ³ ⁴⁵ ⁶ ⁷ ⁸ ⁹ ⁺ ⁻ ⁼ ⁽ ⁾ ⁿ ′ ½下标:₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₊ ₋ ₌ ₍ ₎

2021-04-22 18:11:11 68427 8

原创 Nacos使用总结

官网 :http://nacos.io下载地址 本文下载的为2.0.0版本:https://github.com/alibaba/nacos/releasesLinux/Unix/Mac启动命令(standalone代表着单机模式运行,非集群模式):sh startup.sh -m standalone打开页面http://127.0.0.1:8848/nacos/index.html[root@VM-0-15-centos logs]# jps -l30601 sun

2021-04-08 11:21:29 10401 2

原创 游戏服务器设计-脚本系统设计

本文对脚本引擎beanshell 和groovy做了技术选型,给出了优劣对比结果,并设计了脚本系统UI界面。游戏项目中都会遇到以下的一些需求:1.从内存里查询数据2.修复个别玩家的异常数据如何能最快捷的方式去实现,目前有两种脚本引擎可以选择:beanshell 和groovy.

2021-03-17 15:59:18 691

原创 markdown语法使用总结

1.上标### 2. 数据结构和算法* 寻路算法 * NavMesh * A<sup>*</sup>* 推荐算法 * Collaborative Filtering * Factor Analysis

2021-03-11 19:24:01 213 2

原创 谈谈用统一网关gate的利与弊

在架构设计中,在网关这块,很多公司喜欢用统一网关,特别是电子商务,金融,团购等等日常生活中会用到的互联网产品,但多服多区模式下的游戏是否也适用统一网关呢?那么,统一网关带来的好处是什么呢?1.安全性,所有终端请求都需要经过网关层,再分发给各种微服务,这样,如果我们保证了网关层的安全性,高可用性(HA),负载均衡(LB),那么,很多业务的运行就不会直接暴露在公网上。2.节省资源,IP段的资源(特别是IPV4段目前越来越少的现状)和带宽资源(针对一台云主机分配一定带宽的购买方式,而非共享

2021-02-08 16:14:17 1697 1

原创 Google Guava EventBus使用

Guava是Google开源的一个Java基础类库,它在Google内部被广泛使用。Guava提供了很多功能模块比如:集合、并发库、缓存等,EventBus是其中的一个module,本篇主要讲一下EventBus的使用。简单介绍EventBus:核心类,代表了一个事件总线。Publish事件也由它发起。 AsyncEventBus:异步事件总线,在分发事件的时候,将其压入一个全局队列的异步分发模式。 Subscriber:对某个事件的处理器抽象,封装了事件的订阅者以及处理器,并负责事件处理。

2021-01-30 19:11:41 815

原创 在linux系统上搭建egret编译环境

为了能在服务器自动化编译打包H5项目,需要在测试服搭建一套环境系统:CentOS release 6.9 (Final)安装nodejswget https://nodejs.org/download/release/v9.11.2/node-v9.11.2-linux-x64.tar.gz解压到/usr/local/下,在/etc/profile.d/extend.sh下配置环境变量export NODE_HOME=/usr/local/node-9.11.2export PATH

2021-01-23 20:54:04 541

原创 Redis主从配置总结

IP:192.168.1.100主节点 6379从节点 6380从6380节点里要加slaveof 192.168.1.100 6379把主节点停掉,6380从节点输入slaveof no one主节点恢复后,现将6379设置为从节点,6380的数据也就恢复过来了,6379的节点如下操作slaveof 192.168.1.100 63806...

2020-12-18 18:21:44 138

原创 selenium使用总结

web自动化测试第6步:模拟鼠标操作(ActionChains)selenium webdriver 实现Canvas画布自动化测试ChromeDriver设置有密码的代理(Java版本)解决Selenium 调用IEDriverServer打开IE浏览器用 canvas 的 getImageData 做点有趣的事https://docs.opencv.org/java/...

2020-12-18 18:19:55 255

原创 Seata 分布式事务中间件

Seata分布式事务中间件

2020-11-25 22:08:49 271

原创 全链路实时监控--istio

目前,阿里,蚂蚁金服,美团,腾讯,网易在用

2020-11-21 21:12:25 2090

原创 腾讯云如何挂载数据盘

执行以下命令,对 “/dev/vdb” 裸设备直接创建文件系统格式。 mkfs -t <文件系统格式> /dev/vdb 不同文件系统支持的分区大小不同,请根据实际需求合理选择文件系统。以设置文件系统为EXT4为例: mkfs -t ext4 /dev/vdb 注意: 格式化需要等待一段时间,请观察系统运行状态,不要退出。 执行以下命令,新建挂载点。 mkdir <挂载点> 以新建挂载点/data为例: mkdir /data ...

2020-11-08 17:02:40 1475

原创 源码系列-LongAdder和AtomicLong对比

相当于一个AtomicLong数组,初始化时,初始化大小为2的数组,并初始化相对应位置的一个元素Cell,当每次去尝试获取时,根据当前线程获得的随机值threadLocalRandom取模(大小为cell的数组容量)获得索引值,然后回去找相应位置的元素,找不到则插入新的cell, 然后进行CAS操作(比如compareAndSwapLong),与AtomicLong原理相同,操作成功则结束,操作失败,会尝试扩容为原先cell数组大小的两倍,然后重新初始化要更新的索引值(threadLocalRando...

2020-10-29 19:51:09 389

原创 RocketMQ使用总结

Topic可以理解为在rocketMq体系当中作为一个逻辑消息组织形式,一般情况下一类业务消息会申请一个topic来实现业务之间隔离。Topic是一个逻辑上的概念,实际上在每个broker上以queue的形式保存,也就是说每个topic在broker上会划分成几个逻辑队列,每个逻辑队列保存一部分消息数据,但是保存的消息数据实际上不是真正的消息数据,而是指向commit log的消息索引。...

2020-08-28 16:13:30 403

原创 IntelliJ IDEA 使用总结

1.如何申请IntelliJ IDEA -->通过开源项目免费申请 IntelliJ IDEA <--2.如何切换成中文版Settings -> Plugins-->下载 chinese language package3.IntelliJ IDEA设置快捷键为Eclipse风格File-->setting-->keyMap4设置成eclipse的主题File -> Settings -> .................

2020-08-21 15:59:15 2622

原创 Zstandard (zstd)压缩算法在JAVA上的使用

Zstandard是facebook厂商提供的一种高压缩率的实时压缩算法,他在压缩比和压缩速度上做了很好的平衡,同时还提供高速的解码器,针对小数据,也提供了一种叫做字典压缩算法,从样本中可以创建出字典集合数据,Zstandard库以BSD协议方式开源。以下是基准测试数据对比:压缩算法 压缩比 压缩速度 解压缩速度 zstd 1.4.5 -1 2.884 500 MB/s 1660 MB/s zlib1.2.11 -1 2.743 90 MB..

2020-07-28 17:37:41 8920 1

原创 JUnit5使用总结

看一下几个注解在junit4和junit5版本不同的写法:junit4 junit5 使用场景 @BeforeClass @BeforeAll 在当前类的所有测试方法之前执行。注解在【静态方法】上 @AfterClass @AfterAll 在当前类中的所有测试方法之后执行。注解在【静态方法】上 @Before @BeforeEach 在每个测试方法之前执行。注解在【非静态方法】上 @After @AfterEach ...

2020-07-27 18:31:32 1052

原创 如何检测出redis的哪些key在消耗内存

今天发现测试环境Redis进程被OOM killer了,所以,直觉就是优先找出消耗内存的罪魁祸首key。redis-rdb-tools是专门用来干这活的,我们先来了解下:一、rdbtools工具介绍源码地址:https://github.com/sripathikrishnan/redis-rdb-tools/redis-rdb-tools 是一个用python开发的用于解析 rdb 文件的工具,在解析的时候,它会生成类似于xml sax解析器的事件,在内存检测方面非常有效它主要有...

2020-07-16 22:25:45 870

原创 Jenkins极速入门

Jenkins简介  Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。官网地址为http://jenkins-ci.org/Jenkins部署环境  1.jdk环境,Jenkins是java语言开发的,因需要jdk环境。  2.git/svn客户端,因一般代码是放在git/svn服务器上的,我们需要拉取代码。  3.gradle或者ant打包  以上是自动化部署j..

2020-06-06 18:51:23 446

原创 Ansible极速入门

官方定义:"Ansible is Simple IT Automation"——简单的自动化IT工具Ansible 为运维自动化工具,一种集成 IT 系统的配置管理、应用部署、执行特定任务的开源平台,是 AnsibleWorks 公司名下的项目,该公司由 Cobbler 及 Func 的作者于 2012 年创建成立。Ansible 基于 Python 语言实现,由 Paramiko 和 PyYAML 两个关键模块构建。Ansible 特点:部署简单,只需在主控端部署 Ansible 环境,被控端无需做

2020-06-05 18:15:30 371

原创 Saltstack极速入门

saltstack介绍Salt,一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯,主要功能有远程执行,配置管理。Saltstack官方文档Saltstack原理Salt使用server-agent通信模型,服务端组件被称为Salt master,agent被称为Salt minionSalt master主要负责向Salt minions发送命令,然后聚合并显示这些命令的结果。一个Salt master可以管理多个mi

2020-06-03 20:37:56 516

原创 如何用JAVA调用服务器系统指令

java在企业级项目开发中,无论是强制性的功能需要,还是为了简便java的实现,需要调用服务器命令脚本来执行。在java中,RunTime.getRuntime().exec()就实现了这个功能。用法: public Process exec(String command)//在单独的进程中执行指定的字符串命令。 public Process exec(String [] cmdArray)//在单独的进程中执行指定命令和变量 public Process exec(String ...

2020-05-13 18:07:29 1059

原创 如何在linux搭建FTP服务

安装yum -y install vsftpd创建个用户useradd -s /sbin/nologin -d /data/client/chess ooxxpasswd -l ooxx然后编辑vsftpd配置文件,位置是:vim /etc/vsftpd/vsftpd.conf找到anonymous_enable这个配置项,默认是YES,修改成NO,表示不允许匿名用户登录找到chroot_local_user=YES这个配置,默认是注释的,这里去掉注释,表示只让用户在自己的目录

2020-05-12 15:40:10 315

完美世界面试题,JAVA向

完美世界-面试题,用于对游戏开发感兴趣的伙伴

2023-03-10

腾讯,字节游戏JAVA面试题

腾讯,字节,阿里等知名游戏公司的初级入门面试题,适用有中级开发经验的,对游戏开发感兴趣的小伙伴

2023-03-10

游戏行业JAVA初级面试题

知名游戏公司的初级入门面试题,适用于刚毕业,对游戏开发感兴趣的小伙伴

2023-03-10

2021酷炫的IDEA启动图

你是否已经忍受了 20花里胡哨的启动画面很久了,你是否想替换上酷炫的启动图,程序员的最爱来了

2021-06-14

酷炫的IDEA启动图

你是否已经忍受了IDEA花里胡哨的启动画面很久了,你是否想替换上酷炫的启动图,程序员的最爱来了

2021-06-14

protobuf-java-3.3.0.jar

protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。

2017-10-13

精简版JRE7 64位 (6MB)

原始的JDK 127MB,经过精简,瘦身到6MB,普通的应用程序跑跑基本够用。 可用于替代工具类的JRE 专注瘦身JRE 30年,品质值得信赖!

2013-09-29

protobuf-java-2.5.0.jar

protobuf的最新包, Google 公司推出的开源项目,性能好/效率高 帮忙编译好了

2013-07-09

MINA NIO 高性能异步并发网络通讯框架

利用 Mina 可以高效地完成以下任务:<br><br>TCP/IP 和 UDP/IP 通讯 <br>串口通讯 <br>VM 间的管道通讯 <br>SSL/TLS <br>JXM 集成 <br>IoC 容器集成( Spring 、 Pico 等) <br>状态机<br><br>据官方评测, APR 的效率较之 Sun NIO 要高出约 10%)。由于这一系列的重大改进,使得 2.0.x 成为十分令人期待的一个版本<br>我们在惊叹 MINA 可以带来多么大便利的同时,还不得不为其卓越的性能而骄傲,据称使用MINA开发服务器程序的性能已经逼近使用 C/C++ 语言开发的网络服务。<br>不过不管怎样,如果你在使用 Java 进行并发网络应用开发, Mina 绝对是一个值得推荐和学习的优秀工具!<br>

2008-07-23

commons-io-1.4.jar

使用commons的net包进行ftp链接,commons-net包封装了一些常见的网络包:ftp,smtp,pop3等<br>相关包:commons-net-1.4.1.jar ; commons-io-1.4.jar;jakarta-oro-2.0.8.jar

2008-05-16

jakarta-oro-2.0.8.jar

使用commons的net包进行ftp链接,commons-net包封装了一些常见的网络包:ftp,smtp,pop3等<br>相关包:commons-net-1.4.1.jar ; commons-io-1.4.jar;jakarta-oro-2.0.8.jar

2008-05-16

commons-net-1.4.1.jar

使用commons的net包进行ftp链接,commons-net包封装了一些常见的网络包:ftp,smtp,pop3等<br>相关包:commons-net-1.4.1.jar ; commons-io-1.4.jar;jakarta-oro-2.0.8.jar

2008-05-16

commons-io-1.4.jar等

JAVA连接FTP服务器,并上传/下载文件的,使用commons-net包实现ftp服务器的访问,commons-net包封装了一些常见的网络包:ftp,smtp,pop3等..相关包:commons-net-1.4.1.jar ; commons-io-1.4.jar;jakarta-oro-2.0.8.jar

2008-05-16

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

TA关注的人

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