Skip to content

Latest commit

 

History

History
165 lines (117 loc) · 8.47 KB

File metadata and controls

165 lines (117 loc) · 8.47 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.


2026-04-30

Changed

  • zactor:新增 StartAsyncThen(零 Promise 快路径,worker 执行 + Actor 主线程回写)。
  • zactorAsyncRun / AsyncRunWithMsg 新增 AsyncRunResult / AsyncRunWithMsgResult 返回值语义,调用方可显式处理提交失败场景。
  • zactor:新增 CallActorAll 并发聚合调用能力;提交失败时立即回填 RpcErr,避免阻塞等待;
  • zgate:新增 SetGateMonitorLogEnabled,支持实例级开关 [Gate Monitor] 周期日志(默认开启,兼容历史行为)。
  • zstartupNewApp 启动早期启用 Grace.EnableSignalNotify,缩小启动窗口期信号竞态。
  • 依赖github.com/aiyang-zh/zhenyi-base 升级到 v1.1.2go.mod/go.sum 同步)。

Documentation

  • 压测报告:新增 docs/BENCHMARK.mddocs/BENCHMARK_EN.md,统一公开 7 天稳态与 1 小时高压压测结论
  • 压测归档:压测原始日志与截图改为归档在 zhenyi-site/docs/bench/(按场景目录 + logs.zip),主仓库文档改为引用归档路径。
  • README 导航README.md / README_EN.md 增加压测报告入口(docs/BENCHMARK.md / docs/BENCHMARK_EN.md)。

Added

  • zactor:新增 zactor/flow.gozactor/flow_test.go,覆盖 StartAsyncThen 行为与回调线程语义。

Tests

  • zactor:新增提交失败/验证失败路径测试(CallActorAllAsyncRunWithMsgResult),补齐 refcount 与不阻塞保证。
  • zgate:新增 SetGateMonitorLogEnabled 覆盖测试,验证开关与 nil receiver 安全行为。

2026-04-10

Changed

  • zactor/groupGroup.Run 启动流程改为“失败返回错误 + 回滚已成功 Actor(Close + Unregister)”,不再在初始化失败时直接 Fatal 退出;并将 watchActor 启动时机后移到全部本地 Actor 启动成功之后。
  • zactorActor.ClosemailBoxQueue.CloseworkerPool.Release 移入 closeOnce,重复关闭路径更安全。
  • zstartupApp.Run 收敛为统一且幂等的 shutdown 路径(信号退出与启动失败共用);启动失败时也会执行 best-effort 清理。
  • zifaceIGroup 收敛为统一关闭入口 Close(ctx);不再暴露 CloseScriptEngines 等实现细节方法。
  • zdiscovery/noopWatch channel 改为带缓冲,降低误用写入时发送方阻塞风险(noop 语义保持不变)。
  • zgate:补充 sendClient 在连接已关闭竞态下的 debug 日志,便于排障。

2026-04-03

Added

  • zgateWithNetServerHook(func(IServer)) — 底层 ztcp/zws/zkcp Server 创建并完成 TLS/encrypt/shared-send 注入后回调,便于对 znet.BaseServer 等做额外调参(如 SetHeartbeatTimeout);多次注册按顺序链式执行。
  • examples/mmo_web_demo:进入房间后向新房及(换房时的)旧房广播 world_snapshot,同步房内其他客户端列表。
  • examples/mmo_web_demoenter_ack / world_snapshot 增加 attackRange;Web 端绘制脚下近战攻击范围圈并与服务端一致。
  • 文档docs/EXAMPLES.md / docs/EXAMPLES_EN.md 增加 im_single_demo_bench 说明与运行示例。

Changed

  • examples/mmo_web_demopickAttackTarget 在显式 targetId 不可攻击时 不再 退化为「打最近」;flushRespawns 改为接收调用方传入的 时间戳(与 Tick/消息处理一致)。
  • examples/mmo_web_demo(Web)Shift+点击 使用与角色精灵一致的 AABB 命中,并按绘制顺序 逆序 命中最上层目标。

Fixed

  • examples/mmo_web_demo:修复仅 enter_ack 发给新连接、先进入者需等待 MSG_MOVE 才能看到后进者的问题。
  • zactor:修复 Actor 空闲时 CPU 过高(调整空闲 backoff 的 sleep 粒度,避免忙等空转)。

Documentation

  • docs/MODULE_API.md / docs/MODULE_API_EN.mdzgate/README.md:补充 WithNetServerHook
  • examples/im_single_demo/README.md:补充 TLS/GM-TLS 说明及 --reactor--sharedSendWorker 参数表项。
  • examples/mmo_web_demo/README.md:说明 Demo 通过 WithNetServerHook 禁用空闲读超时以便本地体验。

[0.1.1] - 2026-04-02

Added

  • zgateSetReactorMode(bool) — 在 TCP无传输层 TLS/GM-TLS、底层为 *ztcp.Server 时走 ztcp.ServerReactor(Linux epoll / macOS kqueue);否则保持原 Server(ctx)
  • zgateSetSharedSendWorkerMode(bool) — 将底层长连接 IServerztcp / zws / zkcp,经 znet.BaseServer)切到 共享写 worker(默认 关闭,与历史行为一致)。
  • 示例im_single_demo / im_multi_demo 增加 --reactor--sharedSendWorker,并调用上述 Gate API。
  • examples/mmo_web_demo:浏览器 MMO 示例补充战斗循环(攻击、HP、阵亡、延迟重生、冷却与范围判定)。
  • examples/mmo_web_demoworld_snapshot / combat_eventzaoiWorldManager + Zone + StaticAoi 九宫格与视距)做 AOI 过滤下发。
  • zactorSendToClient 在总耗时超过 zmodel 框架调优中的 SlowLogThreshold 时打 Warn,并拆分记录 前半段处理耗时SendMsg 耗时。
  • 测试(fuzz)zcodec / zroute / zaoi / zactor / ztrace / zdiscovery / zgate / zmsg / zscript 等包增加 go test -fuzz 入口(不 panic、关键路径断言)。

Changed

  • examples/im_multi_client_load:收包回调内 recv 计数改为 批量 flush 到全局原子,降低高并发下 recv 原子竞争(统计语义仍为「收到回包数」量级)。

Fixed

  • zgate / zmsg:修复核心模块 fuzz 相关测试,使其可正确编译运行。

Documentation

  • 文档同步更新docs/EXAMPLES.mddocs/EXAMPLES_EN.mddocs/MODULE_API.mddocs/MODULE_API_EN.mdzgate/README.md,补充 --reactor / --sharedSendWorkermmo_web_demo 的使用说明。

[0.1.0] - 2026-03-27

Added

  • Actor 运行时 (zactor)

    • 单 Actor 单 mailbox(MPSC 无锁队列)
    • 消息处理、Tick、RPC、Dispatcher 扩展
    • CircuitBreaker 熔断器
    • Watchdog 看门狗监控
  • 统一网关 (zgate)

    • TCP / WebSocket / KCP 长连接支持
    • 可选 HTTP 服务 (zhttp)
    • TLS / GM-TLS (国密) 支持
    • Session 管理与路由策略
  • 服务发现 (zdiscovery)

    • Etcd 实现
    • Noop 空实现(单机/测试用)
  • 路由 (zroute)

    • FirstCandidateStrategy(首选候选)
    • RoundRobinStrategy(轮询)
    • RendezvousHashStrategy(一致性哈希)
  • 消息总线 (znats / zbus)

    • NATS 连接池与广播
    • 总线抽象
  • 可观测性

    • zmetrics: Prometheus 指标导出
    • zmonitor: 运行时监控数据
    • ztrace: W3C traceparent 链路追踪
    • zpyroscope: 可选 Grafana Pyroscope 持续剖析(与 zmetrics 解耦);重导出 Config / Profiler 等,业务仅需 import 本包,无需直接依赖 github.com/grafana/pyroscope-go
  • 脚本引擎(5种)

    • zjs: JavaScript 引擎
    • ztengo: Tengo 脚本
    • zlua: Lua 引擎
    • zstarlark: Starlark 脚本
    • zscript: 通用脚本接口
  • 其他模块

    • zaoi: 九宫格 AOI(空间邻近)
    • zcheck: 健康检查
    • zconfig: 配置管理
    • zmodel / zmsg: 消息模型与序列化

Documentation

  • 文档索引:docs/DOCS_INDEX.md(架构、监控、模块 API、示例与图书等入口)

Performance

  • 单机压测数据:500 连接 / 10K QPS
  • RTT P50: ~5.5ms
  • RTT P99: ~34ms
  • 内存占用: ~28MB
  • GC 暂停占比: <0.1%

License

  • AGPL-3.0 + 商业双授权
  • 依赖库 zhenyi-base 为 MIT 授权

完整版本历史

版本 日期 说明
0.1.1 2026-04-03 zgate WithNetServerHook、mmo 进入房间快照同步与近战范围展示、文档与示例补充
0.1.1 2026-04-02 网关 reactor/共享写开关、MMO AOI+战斗示例、fuzz 覆盖扩展
0.1.0 2026-03-27 首次开源