apisix 遇到的一些问题

💡 原文中文,约6300字,阅读约需15分钟。
📝

内容提要

本文讨论了在使用 Apisix 网关过程中遇到的技术问题及解决方案,包括性能优化、架构重构、插件扩展性不足、Prometheus 性能问题、DNS 解析失败和路由匹配错误。通过重构代码、优化配置和引入新技术,提升了系统的稳定性和性能。

🎯

关键要点

  • 在2019年,使用Golang重写网关服务,性能提升至原来的34倍。

  • 架构调整中,合并管理端项目,去掉SDK及交互API,简化设计。

  • 遇到扩展性问题,Golang插件实现成本高,缺乏生态支持。

  • Prometheus性能问题,使用自定义指标导致性能下降,需优化配置。

  • DNS解析失败后,Apisix无法恢复请求转发,需自行修复解析逻辑。

  • 管理端频繁变更导致性能抖动,需优化radixtree重建机制。

  • 发布时处理请求受影响,需支持平滑关闭以避免流量中断。

  • etcd配置导致内存使用量飙升,建议调整compaction模式以减少影响。

  • 自定义插件通过增加batch-processor解决性能问题,优化JSON编码。

延伸问答

使用 Apisix 遇到的主要技术问题有哪些?

主要问题包括性能优化、架构重构、插件扩展性不足、Prometheus 性能问题、DNS 解析失败和路由匹配错误。

如何提升 Apisix 的性能?

通过重构代码、优化配置和引入新技术来提升系统的稳定性和性能。

在使用 Apisix 时,如何解决 DNS 解析失败的问题?

需要自行修复解析逻辑,并切换到更为稳定的 DNS 服务。

Prometheus 性能问题的主要原因是什么?

使用自定义指标导致性能下降,需要优化配置以解决该问题。

如何处理 Apisix 中的路由匹配错误?

通过计算优先级来解决最长路径匹配失败的问题。

在 Apisix 中如何优化管理端的性能?

通过定期重建 radixtree 而不是实时重建,避免整体服务性能抖动。

➡️

继续阅读