Skip to content

feat: Support customizing gateway concurrency#168

Merged
johnlanni merged 1 commit into
higress-group:mainfrom
CH3CHO:feat/concurrency
May 26, 2025
Merged

feat: Support customizing gateway concurrency#168
johnlanni merged 1 commit into
higress-group:mainfrom
CH3CHO:feat/concurrency

Conversation

@CH3CHO
Copy link
Copy Markdown
Collaborator

@CH3CHO CH3CHO commented May 22, 2025

Ⅰ. Describe what this PR did

  1. Support customizing gateway concurrency.
  2. Unify the default gateway concurrency to 16.

Ⅱ. Does this pull request fix one issue?

fixes higress-group/higress#2299

Ⅲ. Usage

all-in-one

Add -e GATEWAY_CONCURRENCY=xx to the docker run command.

Docker Compose

Modify the --concurrency command line arg of gateway service in docker-compose.yml.

@CH3CHO CH3CHO requested a review from johnlanni as a code owner May 22, 2025 09:25
@lingma-agents
Copy link
Copy Markdown

lingma-agents Bot commented May 22, 2025

支持自定义网关并发配置并统一默认值

变更文件

文件路径 变更说明
all-in-one/scripts/start-gateway.sh 在网关启动命令中新增`--concurrency`参数,默认值设为`16`,通过环境变量`GATEWAY_CONCURRENCY`可动态配置
compose/docker-compose.yml 在Docker Compose配置中添加`--concurrency 16`启动参数,实现容器化部署时的并发控制

💡 小贴士

与 lingma-agents 交流的方式

📜 直接回复评论
直接回复本条评论,lingma-agents 将自动处理您的请求。例如:

  • 在当前代码中添加详细的注释说明。

  • 请详细介绍一下你说的 LRU 改造方案,并使用伪代码加以说明。

📜 在代码行处标记
在文件的特定位置创建评论并 @lingma-agents。例如:

  • @Lingma-Agent 分析这个方法的性能瓶颈并提供优化建议。

  • @Lingma-Agent 对这个方法生成优化代码。

📜 在讨论中提问
在任何讨论中 @lingma-agents 来获取帮助。例如:

  • @Lingma-Agent 请总结上述讨论并提出解决方案。

  • @Lingma-Agent 请根据讨论内容生成优化代码。

Copy link
Copy Markdown

@lingma-agents lingma-agents Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 代码评审报告

🎯 评审意见概览

严重度 数量 说明
🔴 Blocker 0 阻断性问题,需立即修复。例如:系统崩溃、关键功能不可用或严重安全漏洞。
🟠 Critical 0 严重问题,高优先级修复。例如:核心功能异常或性能瓶颈影响用户体验。
🟡 Major 1 主要问题,建议修复。例如:非核心功能缺陷或代码维护性较差。
🟢 Minor 0 次要问题,酌情优化。例如:代码格式不规范或注释缺失。

总计: 1 个问题


📋 评审意见详情

💡 单文件建议

以下是文件级别的代码建议,聚焦于代码的可读性、可维护性和潜在问题。
📋 compose/docker-compose.yml (1 💬)

🚀 跨文件建议

以下是对代码架构和设计的综合分析,聚焦于跨文件交互、系统一致性和潜在优化空间。
🔍 1. 跨文件配置不一致:docker-compose.yml未采用环境变量配置并发参数

在start-gateway.sh中已通过环境变量GATEWAY_CONCURRENCY实现并发配置,但docker-compose.yml仍使用硬编码值"16"。这种配置方式的不一致会导致:

  1. 维护成本增加:需在多个地方同步修改配置值
  2. 部署环境不一致风险:不同部署方式(容器编排 vs 直接启动)可能使用不同配置源
  3. 违反十二要素原则:配置应完全外部化而非硬编码在配置文件中
    建议将docker-compose.yml中的并发配置改为引用环境变量,与启动脚本保持一致的配置策略

📌 关键代码:

- --concurrency
- "16"
--concurrency=${GATEWAY_CONCURRENCY:-16} \

⚠️ 潜在风险: 1. 生产环境部署时可能出现配置冲突,导致并发参数无法生效
2. 环境迁移时需要修改多个配置文件,增加人为错误概率
3. 违反架构一致性原则,降低系统可维护性


💡 小贴士

与 lingma-agents 交流的方式

📜 直接回复评论
直接回复本条评论,lingma-agents 将自动处理您的请求。例如:

  • 在当前代码中添加详细的注释说明。

  • 请详细介绍一下你说的 LRU 改造方案,并使用伪代码加以说明。

📜 在代码行处标记
在文件的特定位置创建评论并 @lingma-agents。例如:

  • @Lingma-Agent 分析这个方法的性能瓶颈并提供优化建议。

  • @Lingma-Agent 对这个方法生成优化代码。

📜 在讨论中提问
在任何讨论中 @lingma-agents 来获取帮助。例如:

  • @Lingma-Agent 请总结上述讨论并提出解决方案。

  • @Lingma-Agent 请根据讨论内容生成优化代码。

Comment on lines +180 to +181
- --concurrency
- "16"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

硬编码的并发值应改为环境变量引用

🟡 Major | 🧹 Code Smells

📋 问题详情

在docker-compose配置中直接使用固定数值16作为并发参数,未使用环境变量。这违背了配置参数外部化原则,导致无法通过环境变量动态调整配置。

💡 解决方案

修改为环境变量引用格式:

-      - --concurrency
-      - "16"
+      - --concurrency
+      - "${GATEWAY_CONCURRENCY:-16}"

或合并为单个参数项:

-      - --concurrency
-      - "16"
+      - --concurrency=${GATEWAY_CONCURRENCY:-16}

两种方案均可,需根据程序参数解析方式选择


您的反馈对我们很重要!(建议右键在新标签页中打开以下链接)

有用意见👍无用意见👎错误意见❌

Copy link
Copy Markdown
Contributor

@johnlanni johnlanni left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@johnlanni johnlanni merged commit d17e15f into higress-group:main May 26, 2025
3 checks passed
@CH3CHO CH3CHO deleted the feat/concurrency branch May 26, 2025 06:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants