- 博客(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
原创 详细技术讲解: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
原创 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
原创 在 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
淘宝上货软件-九班长-公测版
2024-08-30
Undertone Offline Whisper AI Voice离线耳语AI语音识别
2024-07-16
Easy Performant Outline 2D 3D URP HDRP and Built-in Renderer 3.3
2024-07-16
Best HTTP2 v2.1.0 v2.6.2 v2.7.0 v2.8.1 v2.8.3 v2.8.5
2024-07-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人