会员
周边
新闻
博问
闪存
赞助商
YouClaw
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
iohao
博客园
首页
新随笔
联系
订阅
管理
2026年4月
不用前端也能测试 —— 模拟客户端请求模块详解
摘要: "再点一下"的联调噩梦 后端开发者对这个场景一定不陌生:你写好了一个新接口,想验证一下功能是否正常。这时你有几个选择—— 等前端同事联调:但他正忙着另一个页面,你得等 用 Postman 发请求:但你的服务器用的是 TCP/WebSocket 协议,Postman 不支持 自己写一个测试客户端:有用
阅读全文
posted @ 2026-04-01 11:56 渔民小镇
阅读(1)
评论(0)
推荐(0)
2026年3月
分布式系统的排障利器 —— ionet 全链路调用日志跟踪
摘要: 分布式系统排障有多难? 在单机应用中,出了问题看一下日志就行。但在分布式系统中,一个用户请求可能经过多个逻辑服——登录服 → 匹配服 → 房间服 → 数据统计服。当某个环节出问题时,你面对的是散落在多台机器上的日志。 更棘手的是:大量用户同时在线时,不同用户的日志交错在一起,想筛选出"用户 1000
阅读全文
posted @ 2026-03-29 12:02 渔民小镇
阅读(5)
评论(0)
推荐(0)
开发神器:DebugInOut 插件与调用统计
摘要: ## 开发阶段最大的痛点是什么? 不是写代码慢,而是**不知道发生了什么**。 - 客户端说"请求没有响应",你不知道请求有没有到达服务器- 某个 Action 明明写好了,但不确定它有没有被正确注册- 多人协作的项目,你不知道别人写的业务方法在哪个类的第几行 ionet 内置了一套插件系统,专门解
阅读全文
posted @ 2026-03-26 11:08 渔民小镇
阅读(1)
评论(0)
推荐(0)
告别 if-else 地狱 —— JSR380 参数验证在 ionet 中的应用
摘要: 你的 Action 方法长什么样? 很多开发者的业务方法,前一半都是在检查参数: // 不使用验证框架的写法 private void createRoom(CreateRoomMessage message) { if (message.roomName == null || message.ro
阅读全文
posted @ 2026-03-25 10:34 渔民小镇
阅读(1)
评论(0)
推荐(0)
断言 + 异常机制 = 清晰简洁的代码
摘要: 业务代码的"噪音" 如果让一个开发者回顾自己写的业务代码,他会发现一个令人沮丧的事实:真正处理业务的代码可能只占 30%,剩下的 70% 都是各种"防御性代码"。 // 这种代码你一定写过 public Result buyItem(long userId, int itemId, int coun
阅读全文
posted @ 2026-03-23 14:36 渔民小镇
阅读(8)
评论(0)
推荐(0)
无锁并发不再难 —— ionet 线程执行器设计哲学
摘要: 并发:游戏服务器的头号杀手 在所有网络编程的难题中,并发问题是最难调试、最容易被忽视、也最致命的。 想象一下:两个玩家同时操作同一个房间的数据,一个在下棋、一个在投降。两个请求几乎同时到达,如果它们在不同的线程中执行,而你没有加锁,数据就会出错。如果你加了锁,性能就会下降,还可能出现死锁。 大部分框
阅读全文
posted @ 2026-03-21 13:21 渔民小镇
阅读(5)
评论(0)
推荐(0)
告别 Redis/MQ —— ionet 分布式事件总线实战
摘要: 一个熟悉的场景 你刚接到一个需求:玩家登录后,系统需要做以下事情—— 记录登录时间 发放离线奖励 发送欢迎邮件 推送今日活动信息 更新排行榜在线状态 你的第一反应可能是:上 Redis pub/sub 或 MQ。 但这意味着:安装 Redis/RabbitMQ 服务、维护连接池、处理消息序列化、配置
阅读全文
posted @ 2026-03-20 10:19 渔民小镇
阅读(8)
评论(0)
推荐(0)
不止 request/response —— ionet 的 4 种通信模型选型指南
摘要: 为什么通信模型如此重要? 很多项目把所有的网络交互都做成一种模式:客户端发请求、服务器回响应。这在简单场景下没有问题,但随着业务复杂度的增加,你会遇到这些困境: 进入房间后,如何给所有人推送状态变化? 用 request/response 需要客户端主动轮询,既浪费带宽又有延迟。 匹配系统需要查询多
阅读全文
posted @ 2026-03-19 22:12 渔民小镇
阅读(6)
评论(0)
推荐(0)
纳秒级延迟的秘密 —— Aeron + SBE 突破性能极限
摘要: 性能不是调参数 很多框架宣称"高性能",但你翻开文档,发现它们的"性能调优"指南主要是在教你调 JVM 参数、调线程池大小、调缓冲区容量。 这不是高性能,这是参数玄学。 真正的高性能来自架构层面的选择。ionet 在消息传输层做了一个关键决策:采用 Aeron + SBE 组合。这个组合的设计目标不
阅读全文
posted @ 2026-03-09 22:45 渔民小镇
阅读(23)
评论(0)
推荐(0)
对外服 + 逻辑服:ionet 如何用分层架构解决 N*N 问题
摘要: 传统架构的隐形炸弹 在讨论 ionet 的架构之前,我们先来看一个让无数资深架构师头疼的问题:N*N 连接问题。 传统的分布式游戏服务器架构中,各个逻辑服之间通常是相互直连的。逻辑服 A 需要和逻辑服 B 通信?建立连接。B 需要和 C 通信?再建立连接。每个逻辑服都需要知道其他所有逻辑服的 ip:
阅读全文
posted @ 2026-03-05 19:49 渔民小镇
阅读(10)
评论(0)
推荐(0)
下一页
公告