自定义博客皮肤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

  • 博客(279)
  • 收藏
  • 关注

原创 游戏跨服架构进化之路

1.背景虽然游戏市场竞争激烈,产品格局变动较大,但游戏产业一直处于稳步增长阶段,无论是在端游,页游,手游还是已经初露端倪的H5游戏。可以预见,游戏类型中,MMOARPG游戏仍然会是引领市场的主流趋势,贡献着大部分流水,市场上也仍然在不断涌现精品。研发团队对MMO游戏的探索从来未间断过,从付费模式的改变,到题材多元化,次时代的视觉效果,更成熟的玩法及数值体系,本文主要针对跨服玩法上的探索和...

2017-03-02 14:46:41 12896 17

原创 OpenTracing基本知识点总结

一.OpenTracing:开放式分布式追踪规范两个组成部分Trace:调用链,追踪链路,一个trace是由若干span组成的有向无环图.Span:跨度点,一次跨方法调用span属性Operation name:操作名词Start timestamp:开始时间Finish timestamp:完成时间Span Tag:标签集合,一组键值对,键必须为字符串,值为字符串/数字或布尔Span Log: 日志集合,没条日志包含一个键值对和一个时间错。SpanContext:上下文OpenTra

2021-10-22 15:47:42 12

原创 算数几何的绘制

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

2021-09-18 11:21:09 30

原创 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 21

原创 Unity3D 一些工具总结

插件EasyTouch插件

2021-08-20 15:38:47 29

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

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

2021-08-10 14:54:38 148

原创 谈谈对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 71 1

原创 Docker使用总结

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

2021-07-07 15:40:32 70

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

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

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

原创 Tcaplus使用总结

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

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

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

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

2021-06-09 10:39:44 213

原创 JCtools使用总结

早在96年就有论文提出了无锁队列的概念,再到后来 Disruptor,高性能已得到生产的验证。此处介绍的 Jctools 中的高性能队列,其性能丝毫不输于 Disruptor。JCTools (Java Concurrency Tools) 提供了一系列非阻塞并发数据结构(标准 Java 中缺失的),当存在线程争抢的时候,非阻塞并发数据结构比阻塞并发数据结构能提供更好的性能。JCTools 是一个开源工具包,在 Apache License 2.0 下发布,并在 Netty、Rxjava 等诸多框架

2021-05-14 11:26:30 143

原创 特殊符号收集

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

2021-04-22 18:11:11 118

原创 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 1517

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

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

2021-03-17 15:59:18 178

原创 markdown语法使用总结

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

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

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

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

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

原创 Google Guava EventBus使用

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

2021-01-30 19:11:41 217

原创 在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 155

原创 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 65

原创 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 104

原创 Seata 分布式事务中间件

Seata分布式事务中间件

2020-11-25 22:08:49 131

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

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

2020-11-21 21:12:25 862

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

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

2020-11-08 17:02:40 569

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

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

2020-10-29 19:51:09 79

原创 RocketMQ使用总结

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

2020-08-28 16:13:30 176

原创 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 392

原创 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 2231 1

原创 JUnit5使用总结

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

2020-07-27 18:31:32 204

原创 如何检测出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 514

原创 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 234

原创 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 171

原创 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 226

原创 如何用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 339

原创 如何在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 192

原创 域名各种记录

A记录普通的域名和IP映射CNAME您的域名接入 CDN 后,系统会为您自动分配一个以.cdn.dnsv1.com为后缀的 CNAME 域名,可在 CDN 控制台域名管理页查看。CNAME 域名不能直接访问,您需要在域名服务提供商处完成 CNAME 配置,配置生效后,即可享受 CDN 加速服务。TXT用于手动DNS验证...

2020-05-09 22:39:58 378

原创 游戏分享总结

网易伏羲《图谱反外挂:游戏中异常交易检测》 玩家行为特征分析Gold Farmer IP,设备类似,资源经常卖给同一个bankerGold banker ,和其他玩家交易频繁,交易关系很多,聊天关系很多...

2020-03-18 19:44:11 532

原创 FineBI使用总结

这篇文章为FineBI使用中遇到的问题总结1.数据库查询出来的中文字段为乱码,FineReport关于Linux下字体乱码终极解决方案帮助文档

2020-03-01 00:15:47 2699

原创 Windows Builder 使用总结

从Eclipse MarketPlace 下载Windows Builder所有控件的实例如下:https://www.eclipse.org/swt/snippets/1.如何提取可执行文件exe的图标 /** extract the exe file's icon */public static Image getImage4exe(String path) ...

2020-01-10 14:13:04 1048

原创 如何制作加密的JAR包

//TODO ...agentlibhttps://github.com/core-lib/xjar

2020-01-09 10:54:17 571

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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