Memcached 1.6.23 现已发布,此版本仅影响 proxy code。请求调度 API 已重做。有关 API 的完整文档,请参阅此处。
官方提醒,有关此版本中新的 API 虽然已经做了大量工作来验证代码,但这仍然是一个很大的变化。建议用户在部署前仔细测试。
以前的mcp.await
和pool(request)
调用表单已被积极弃用,相关代码将在 memcached 的下一个版本中删除。在再次升级之前,用户需要将配置脚本移至新的 API。此举是为了简化内部代码并解除旧 API 所阻碍的性能和稳定性功能。
以前在默认情况下,代理使用单个后台线程向后端服务器发出 IO。这通常会阻止扩展到超过 4 个 CPU 核心,但会减少使用的 TCP 套接字数量并增加到后端的管道传输。从此版本开始,默认情况是直接从工作线程发出后端 IO。这种行为可以在全局或每个池的基础上进行调整。
项目团队的目标是稳定代理,从现在开始专注于代码清理和较小的更改。还计划在下一个版本中直接在 memcached 中加入新的routelib
,以提高易用性。
修复
- proxy:添加
mcp.backend_use_iothread(bool)
+错误修复 - proxy:lua API 版本 2
- proxy:添加
mcp.time_[real|mono]_millis()
新功能
Proxy API version 2:
- 通过允许对每个请求重复使用预先计算来提高性能
- 通过避免在请求时分配、防止 GC 使用来提高性能
- 允许递归函数调用
- 让未来的 API 扩展更加容易
- 针对发出的每个后端请求的自定义回调
详情可查看更新说明。