自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

九班长的博客

实战是技术成长的必经之路。无论你处于哪个阶段,都应该积极参与实战项目,不断挑战自己。只有在实战中,我们才能真正理解技术的本质,掌握解决问题的技巧,并最终成为一名优秀的技术从业者。

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

原创 Go语言pprof性能分析指南

Go语言pprof工具使用指南:通过导入net/http/pprof包并启动HTTP服务(默认6060端口),可收集CPU、内存、Goroutine等性能数据。使用go tool pprof命令进入交互模式,支持top、list、web等指令分析热点函数。可视化分析可通过-http参数启动Web界面,查看火焰图和调用图。典型应用场景包括诊断内存泄漏(对比堆快照)、Goroutine泄露(分析创建堆栈)和CPU过高(定位flat值高的函数)。生产环境建议限制访问权限,并支持动态启停。该工具能有效识别性能瓶颈,

2025-07-19 15:07:35 65

原创 Golang服务端处理Unity 3D游戏地图与碰撞的详细实现

地图数据管理使用JSON格式在Unity和Golang之间交换地图数据支持网格和AABB障碍物表示地图大小限制和验证碰撞检测系统分层检测:网格 → AABB → 精确形状动态空间分区(网格和四叉树)并行碰撞检测移动验证与防作弊路径分段检测物理参数验证(速度、加速度)行为模式分析性能优化空间分区(四叉树/网格)并发处理位置差分压缩网络同步基于KCP/UDP的低延迟协议位置变化阈值同步状态压缩。

2025-07-04 17:45:30 355

原创 Ubuntu 上安装 Git LFS

摘要:在Ubuntu上安装Git LFS的两种方法:推荐通过官方仓库安装(需添加仓库后使用apt安装),或使用Ubuntu默认仓库(可能版本较旧)。安装后需运行git lfs install初始化,并通过git lfs version验证。使用时用git lfs track指定大文件类型。注意需预先安装Git,旧版系统可能需要添加第三方仓库获取最新版本。

2025-06-08 11:25:25 607

原创 Mirror的多人连接管理及房间系统

该方案实现了完整的房间管理功能,支持:创建房间、自动房间ID生成、玩家数量限制、游戏状态管理、断线处理等核心功能。部署时需根据实际并发量调整服务器配置,建议配合数据库实现持久化存储。推荐:4核CPU / 8GB RAM(支持200人同时在线)最低:2核CPU / 4GB RAM(支持50人同时在线)开放端口:7777(默认TCP/UDP)建议使用固定公网IP或DDNS。

2025-05-13 16:57:59 421

原创 JMeter 中实现 双 WebSocket(双WS)连接

在JMeter中实现双WebSocket(双WS)连接的测试场景,可以通过以下步骤配置:首先,确保已安装JMeter WebSocket Samplers插件,并将Proto生成的Java类和protobuf-java-x.x.x.jar放入JMeter的lib目录。接着,在测试计划中建立两个独立的WebSocket连接,分别配置WebSocket Open Connection、WebSocket Request-Response Sampler和WebSocket Close Connection。使用

2025-05-10 16:35:56 1826

原创 JMeter 中通过 WebSocket (WS) 协议发送和接收 Protocol Buffers (Proto) 消息

在JMeter中通过WebSocket协议发送和接收ProtocolBuffers(Proto)消息,需使用JMeter WebSocket插件并结合JSR223脚本处理Proto的序列化和反序列化。首先,安装WebSocket插件和ProtocolBuffers依赖,并生成Proto Java类。接着,配置WebSocket连接,使用JSR223脚本生成Proto二进制数据并发送。接收消息时,通过JSR223PostProcessor解析响应并提取字段。测试计划包括建立连接、发送请求、解析响应和关闭连接。

2025-05-10 16:25:07 1489

原创 jMeter压测环境部署JDK+Groovy+JMeter+Proto+IntelliJ IDEA

lib启动 JMeter → 顶部菜单栏显示版本(如5.6.3jmeter -v查看目录下的(如: Java 11 或 17: 5.6.3: 3.0.7(JMeter 内置): 无需额外配置,稳定性最佳。: Java 17: 5.6.3: 4.0.21(手动替换)替换步骤:删除将放入重启 JMeter: Java 21: 5.6.3(需手动升级依赖): 4.0.21(必须)在:编写测试脚本在 JMeter 中添加:运行脚本:JDK 版本高于 Groovy 支持范围。

2025-05-10 15:58:38 948

原创 允许别的电脑连接我电脑wsl下5001、5002端口

确保你的服务在WSL中监听所有网络接口(0.0.0.0),而不仅仅是本地(127.0.0.1)。:上述步骤适用于WSL2。若使用WSL1,无需端口转发,直接使用Windows的localhost即可。完成以上步骤后,外部设备即可通过Windows主机的IP连接到WSL的指定端口。任务计划程序中创建新任务,触发器设置为“登录时”。:确保设备在同一网络,且无路由器/防火墙阻拦。:所有命令需在管理员权限下运行。勾选“使用最高权限运行”。

2025-05-08 11:05:20 558

原创 Ubuntu手动安装Consul 的详细步骤

以下是 手动安装Consul 的详细步骤(不依赖APT仓库,直接使用二进制文件)

2025-05-07 08:30:50 503

原创 服务端与客户端地图及距离一致

在实时多人3D游戏中,确保服务端与客户端的地图及距离完全同步是保证游戏公平性和体验一致性的关键。

2025-05-06 08:30:00 160

原创 详细技术讲解:3D同步帧游戏开发

开发阶段重点前期确保物理引擎的确定性中期完善预测-校正系统后期优化网络传输效率测试要点不同网络环境下的表现(4G/WiFi/高延迟)大规模玩家同屏压力测试极端操作情况测试(快速转向、连续跳跃)推荐工具链网络分析:Wireshark + 自定义协议解析插件性能分析:pprof + Go Trace自动化测试:Robot Framework + 网络损伤模拟该架构可实现支持100+玩家同屏的3D实时对战游戏,核心指标参考:服务器CPU消耗:< 1ms/帧(100玩家)

2025-05-06 08:00:00 80

原创 3D版同步帧游戏

以下是实现一个3D版同步帧游戏的详细步骤与完整代码示例。我们将以第一人称射击游戏(FPS)为原型,重点讲解3D空间中的同步机制优化。

2025-05-01 10:03:51 460

原创 Golang多人在线坦克对战游戏(帧同步)

以下是一个简化但完整的同步帧游戏示例——实现一个多人在线坦克对战游戏。代码分为服务器和客户端两部分,使用UDP协议通信。我们将重点讲解核心同步机制。完整代码实现1. 公共消息定义 ()2. 游戏服务器 ()3. 游戏客户端 ()关键机制详解1. 帧同步流程2. 输入延迟补偿 服务器使用方法计算输入所属的正确帧公式:允许一定时间的未来输入(500ms),防止网络抖动本地预测:立即应用移动指令,无需等待服务器确

2025-05-01 09:40:44 413

原创 JMeter WebSocket 压测详细步骤(支持 ws+proto 协议)

右键 Thread Group → Add → Config Element → WebSocket Connection Configuration。右键 Thread Group → Add → Sampler → WebSocket Open Connection。右键 Test Plan → Add → Threads (Users) → Thread Group。:调整服务器最大连接数,或使用分布式压测。(版本需与服务器匹配),放入。(可选,用于复杂压测模型)(引用脚本生成的变量)

2025-04-30 10:40:32 1454

原创 WebSocket + Protobuf 高性能游戏服务端实现

这个实现可以处理10万并发消息,实际性能取决于硬件资源和消息处理复杂度。建议在真实环境中进行压力测试并根据结果调整参数。

2025-04-26 09:03:58 308

原创 多房间聊天室

后续可根据具体业务需求调整分片数量、通道缓冲大小等参数,建议配合pprof进行性能剖析和针对性优化。每个分片使用独立goroutine并行广播。发送消息时使用select默认分支处理堆积。将用户列表拆分为64个分片,减少锁竞争。支持批量消息处理,减少通道操作次数。使用FNV哈希算法分配用户到分片。默认32个工作者协程处理房间操作。替代原生map+mutex组合。使用原子操作替代部分锁操作。95%消息延迟低于10ms。防止突发流量导致协程暴增。每秒处理20万+ 消息。实时统计全局用户数量。

2025-04-26 08:57:16 56

原创 多人3D游戏完整实现方案

以下是一份完整的代码实现方案,涵盖架构设计、核心模块实现和部署流程。我们以 多人3D游戏 为例,结合之前讨论的Nano服务端框架和Unity客户端:服务端实现1. 项目结构2. 核心代码实现2.1 Protobuf协议定义 ()2.2 游戏房间组件 ()2.3 移动处理器 ()客户端实现 (Unity)1. 网络管理器2. 玩家控制器3. 碰撞检测部署方案1. 服务端D

2025-04-19 19:00:21 288

原创 完整游戏排行榜系统实现

这个实现可以直接用于生产环境,根据实际需求进行适当调整即可。系统已经考虑了高并发场景下的性能问题,并提供了完整的功能实现。

2025-04-19 18:49:28 147

原创 Redis 集群管理与部署指南(数据卷挂载)

为了让 Redis 集群数据持久化,防止容器重启后数据丢失,我们需要为每个节点添加数据卷挂载。

2025-04-07 15:00:00 64

原创 Golang Redis 集群管理与部署指南

Redis 集群是 Redis 的分布式实现,提供数据自动分片、主从复制和故障转移功能。一个 Redis 集群通常由多个节点组成,每个节点负责一部分哈希槽(共16384个槽)。

2025-04-07 10:00:00 115

原创 Golang改进后的任务调度系统分析

这个完整实现提供了健壮的任务调度功能,支持周期性任务和一次性任务,具有熔断、限流、重试等机制,适合生产环境使用。自动设置Content-Type为application/json(当未指定时)区分周期性任务和一次性任务的重试策略。优化HTTP客户端连接池配置。使用细粒度锁保护任务状态更新。确保响应体被完全消耗和关闭。在所有路径上正确关闭响应体。,支持任意格式的请求体。方法立即执行一次性任务。改进错误处理和日志记录。

2025-04-03 21:17:53 508

原创 Golang定时任务管理(中文日志+防重复执行)

下面是一个完整的定时任务管理系统实现,专门针对API调用场景优化,具有以下特点:全中文日志输出,便于监控和排查问题严格防止任务重复执行(上次未完成不会启动新执行)完善的API调用错误处理和重试机制熔断器保护防止雪崩效应。

2025-04-03 21:12:46 340

原创 Golang封装Consul 服务发现库

该封装库已在生产环境处理 5000+ QPS 的微服务场景验证,可根据实际需求调整健康检查间隔、缓存策略等参数。建议配合 Consul 集群和 ACL 策略共同使用。使用监听模式实时更新服务列表,减少 Consul 查询压力。支持同时配置 HTTP/TCP/TTL 多种检查方式。扩展支持 Consul KV 存储的配置读取功能。方法中添加 Prometheus 指标统计。内置加权随机选择(可扩展实现更复杂算法)通过 Token 实现安全访问控制。自动获取宿主机 IP,避免硬编码。

2025-04-03 21:05:29 295

原创 生成LoadX509KeyPair 需要的证书

对于微服务架构,可以考虑使用服务网格(如Istio)管理证书。自签名证书浏览器会显示警告,仅适用于开发和测试环境。私钥文件必须严格保护,不要提交到版本控制系统。证书有效期通常设置为1年,需要定期更新。生产环境应使用受信任的CA签发的证书。这些生成的证书文件可以直接用于Go的。服务器证书(PEM 格式,通常为。私钥文件(PEM 格式,通常为。函数来配置TLS服务器或客户端。

2025-04-01 18:28:36 279

原创 wsl下ubuntu安装宝塔

已安装 WSL 2 并启用 Ubuntu 发行版(推荐 Ubuntu 20.04/22.04)。宝塔依赖 systemd 管理服务,但 WSL 默认不启用。:部分宝塔功能(如防火墙)可能无法在 WSL 中正常工作。安装完成后会显示面板地址、用户名和密码(务必保存)。:WSL 不适合生产环境,仅推荐用于本地开发测试。:WSL 卸载后数据会丢失,建议定期备份(如有其他问题,建议参考。或 WSL 社区支持。

2025-04-01 18:25:42 976

原创 工业级完整实现的 Go TCP 服务端

包含所有关键细节:连接管理、心跳检测、优雅关闭、并发控制、安全防护等。代码高度模块化,可直接用于生产环境。这个实现适合作为高性能TCP服务的基准模板,可根据实际业务需求扩展协议处理逻辑。双向检测 (发送PING + 读超时)原子计数器实现精准连接数控制。每个连接独立读写缓冲区。信号处理 + 超时控制。集成pprof性能分析。等待所有连接处理完成。

2025-03-30 20:33:45 131

原创 Redis实现的分布式房间匹配系统

import ("context""fmt""log""strings""sync""time"const (导入必要的标准库和第三方库定义Redis连接参数和系统常量定义每个房间容纳4人TotalUsers定义总共要处理的用户数。

2025-03-29 15:00:00 405

原创 Golang实现房间匹配问题(5万人同时在线 )

处理 5万人同时在线 的实时房间匹配问题,需要设计一个高性能、高可用、可扩展的分布式系统架构。以下是关键设计思路和解决方案:

2025-03-29 10:00:00 47

原创 使用Golang解决动作冒险游戏帧同步问题

Golang因其高性能、并发模型和简洁语法,非常适合开发游戏服务器和解决帧同步问题。

2025-03-28 10:00:00 184

原创 动作冒险游戏 Golang 框架设计

下面是一个专为动作冒险游戏设计的 Golang 框架,整合了帧同步、网络通信、游戏循环等核心功能。

2025-03-28 01:45:00 636

原创 动作冒险游戏帧同步问题的解决方案

帧同步问题是动作冒险游戏中常见的挑战,特别是在多玩家联网游戏中。

2025-03-27 20:30:51 222

原创 在 Ubuntu 上安装 Docker 的完整指南

默认情况下,Docker 需要 root 权限。建议在 Windows 上安装 Docker Desktop 并启用 WSL 2 集成。现在你已经成功在 Ubuntu 上安装了 Docker,可以开始构建和运行容器了!命令在 WSL 2 中手动启动 Docker 守护进程。或者更好的方法是确保用户已加入 docker 组。

2025-03-27 20:22:44 336

原创 使用 WSL + Ubuntu + Go + GoLand(VSCode) 开发环境配置指南

在 “VERSION” 列下,您将看到 “1” 或 “2”,这表示每个发行版的 WSL 版本。这样配置后,你将拥有一个强大的 Go 开发环境,结合了 WSL 的 Linux 环境优势和 GoLand 的专业 IDE 功能。这样你就配置好了一个完整的 Go 开发环境,结合了 WSL 的 Linux 优势和 VSCode 的强大编辑器功能。打开 GoLand → File → Settings → Go → Go Modules。选择 "File" →"New"→"Project"

2025-03-27 13:28:41 582

原创 Windows 下使用 Docker 部署 Go 应用与 Nginx 详细教程

本教程提供了从零开始到生产部署的完整流程,涵盖了Windows环境下的特殊注意事项,帮助您高效地在Windows上使用Docker部署Go应用和Nginx反向代理。修改docker-compose.yml取消app的ports注释。设置 -> Resources -> File Sharing。应显示 "Hello from Go app!安装时勾选"使用 WSL 2 引擎"(推荐)使用Let's Encrypt免费证书。修改nginx.conf添加SSL配置。安装 Docker 和 WSL 扩展。

2025-03-25 17:51:38 656

原创 Goroutine 泄漏问题

Goroutine 泄漏是 Go 语言并发编程中一个常见的问题,但通过合理的设计和工具,可以有效地避免和解决。如果 Goroutine 在等待从 Channel 接收数据,确保在适当的时候关闭 Channel。Goroutine 中的逻辑进入了死循环,或者等待一个永远不会发生的条件。:在适当的时候关闭 Channel,确保 Goroutine 退出。在 Goroutine 中避免使用无限循环,除非有明确的退出机制。在设计 Goroutine 时,确保它有明确的退出条件。

2025-03-25 10:00:00 210

原创 Goroutine 与 Channel

Goroutine 和 Channel 是 Go 语言并发编程的核心,理解它们的原理和使用方法对于编写高效、安全的并发程序至关重要。通过合理的设计和优化,可以充分发挥 Go 语言的并发优势,解决实际开发中的复杂问题。以下是对 Goroutine 和 Channel 的深入解析,包括它们的原理、使用场景、常见问题及最佳实践。与操作系统线程相比,Goroutine 的创建和销毁开销更小,初始栈大小仅为几 KB,且可以动态扩展。Channel 可以是双向的,也可以是单向的(只发送或只接收)。

2025-03-24 10:00:00 97

原创 二十五、实战开发 uni-app x 项目(仿京东)- 前后端轮播图

Data@Entity@Data:Lombok注解,自动生成getter、setter、toString、equals和hashCode方法,减少了样板代码。@Entity:JPA注解,表示该类是一个实体类,对应数据库中的一张表。是一个接口,继承了。Swiper:表示该 Repository 操作的实体类。Long:表示实体类主键的数据类型。通过继承:保存或更新实体。:根据主键查找实体。findAll():查找所有实体。:根据主键删除实体。count():返回实体的总数。

2025-03-23 10:50:53 1135

原创 Golang开发棋牌游戏中的坑

然而,在实际开发中仍然需要注意并发控制、网络通信、数据一致性、性能优化、防作弊等问题。通过合理的设计和优化,可以开发出高性能、高可用的棋牌游戏。然而,在实际开发中仍然会遇到一些常见的“坑”。使用 ELK(Elasticsearch、Logstash、Kibana)或 Fluentd 聚合和分析日志。棋牌游戏通常需要处理大量并发连接和实时交互,如果并发控制不当,可能导致数据竞争、死锁或性能问题。在关键节点(如登录、充值、牌局)埋点,收集玩家行为数据。棋牌游戏需要保证数据的一致性,如玩家余额、牌局状态等。

2025-03-22 16:12:55 325

原创 从零开始学习 Go 语言

它以其简洁的语法、高效的并发支持和强大的标准库而闻名,非常适合开发高性能的服务器端应用、分布式系统和云计算工具。通过本文的学习,你可以掌握 Go 语言的基础语法、核心概念和开发工具,并能够使用 Go 语言开发实际项目。Go 语言以其简洁、高效和并发支持,成为现代软件开发的重要工具。通过本文的学习,你可以掌握 Go 语言的基础语法、核心概念和开发工具,并能够使用 Go 语言开发实际项目。无缓冲 Channel 的发送和接收操作是同步的,而有缓冲 Channel 的发送和接收操作是异步的。

2025-03-22 15:42:34 687

原创 二十四、实战开发 uni-app x 项目(仿京东)- 前后端实现登录注册

使用注解可以将JSON请求体自动转换为Java对象。Spring Boot默认使用Jackson库处理JSON的序列化和反序列化。你可以轻松处理简单的或复杂的JSON请求和响应。确保你的数据模型类有无参构造函数和Getter/Setter方法,以便Jackson能够正确解析和生成JSON。5. 实战封装通用请求包// 请求的具体数据// 请求的时间戳// API 版本号// 构造函数// Getter 和 Setter 方法封装通用响应包// 状态码。

2025-03-22 10:00:00 542

淘宝上货软件-九班长-公测版

  好消息!!!九班长淘宝上货,公测了,欢迎大家试用,并提供宝贵意见。现在正在免费使用中,欢迎下载。   淘宝上货软件目前支持,淘宝上淘宝,1688上淘宝,17网上淘宝,搜款网上淘宝。   淘宝上货软件目录功能有   1、价格调整:固定加价、比例加价、加运费。通过这些条件进行价格调整。   2、自定义库存。可根据自己需求,要调整库存。   3、自定义分类。可自定义上传到指定分类中。   4、上传到:已上架、草稿箱   5、运费模板   6、发货时效:48小时内发货、24小时内发货、大于48小时发货   7、标题加前缀、加后缀   8、标题替换   9、sku名称加前缀、加后缀   10、sku名称替换   11、自定义属性   12、主图删除前几张、后几张   13、自定义主图水印,可加旋转角度、透明度   14、自定义主图文件   15、详情图删除前几张、后几张   16、自定义详情图水印,可加旋转角度、透明度   17、自定义详情图文件   18、抓取券后价   20、手动提交   21、上传视频   22、换货功能,可以用新的链接内容提换之前销售的商品信息,不影响之前的销售信息。

2024-08-30

Undertone Offline Whisper AI Voice离线耳语AI语音识别

Undertone Offline Whisper AI Voice离线耳语AI语音识别

2024-07-16

Touch Camera PRO

Touch Camera PRO

2024-07-16

TriLib 2 - Model Loading Package

TriLib 2 - Model Loading Package

2024-07-16

Fingers-Touch Gestures for Unity 3

Fingers-Touch Gestures for Unity 3

2024-07-16

Obi Rope v6.5.1

Obi Rope v6.5.1

2024-07-16

RT-Voice PRO

RT-Voice PRO

2024-07-16

Runtime Transform Handles

Runtime Transform Handles

2024-07-16

File Management 2.5

File Management 2.5

2024-07-16

AVPro Movie Capture - Ultra Edition 5.0.5

AVPro Movie Capture - Ultra Edition 5.0.5

2024-07-16

AVPro Video v2.6.6 v1.9.6 v1.11.3

AVPro Video v2.6.6 v1.9.6 v1.11.3

2024-07-16

Easy Performant Outline 2D 3D URP HDRP and Built-in Renderer 3.3

Easy Performant Outline 2D 3D URP HDRP and Built-in Renderer 3.3

2024-07-16

3d WebView Mobile Old Releases

3d WebView Mobile Old Releases

2024-07-16

Best HTTP2 v2.1.0 v2.6.2 v2.7.0 v2.8.1 v2.8.3 v2.8.5

Best HTTP2 v2.1.0 v2.6.2 v2.7.0 v2.8.1 v2.8.3 v2.8.5

2024-07-16

EasyMobilePro v2.19.0

EasyMobilePro v2.19.0

2024-07-16

Erlang国内下载真难

Erlang下载

2024-02-11

空空如也

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

TA关注的人

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