You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Camunda7.18+Wildfly26:异步BPMN启动作业数受限,求REST API调优参数

Camunda REST API 并发调优方案(Wildfly 26 + Camunda 7.18)

针对你遇到的Camunda REST API并发瓶颈问题,结合Wildfly 26和Camunda 7.18的特性,可从以下几个维度进行调优:

一、Camunda REST应用专属参数调优

在Wildfly的standalone.xml或domain.xml的Camunda子系统中,添加或调整以下REST相关配置:

<subsystem xmlns="urn:org.camunda.bpm.jboss:1.1">
  <!-- 已有的JobExecutor配置 -->
  <job-executor>
    <property name="queueSize">50</property>
    <property name="corePoolSize">150</property>
    <property name="maxPoolSize">250</property>
    <property name="keepAliveTime">10</property>
    <property name="lockTimeInMillis">900000</property>
    <property name="waitTimeInMillis">5000</property>
    <property name="maxJobsPerAcquisition">50</property>
  </job-executor>
  
  <!-- 添加REST API调优参数 -->
  <properties>
    <!-- 控制REST客户端总连接数 -->
    <property name="rest-api.max-total-connections">200</property>
    <!-- 单路由最大连接数 -->
    <property name="rest-api.max-connections-per-route">100</property>
    <!-- 请求超时时间(毫秒),避免请求长期堆积 -->
    <property name="rest-api.request-timeout">30000</property>
  </properties>
</subsystem>

二、Wildfly Undertow容器线程池调优

Wildfly使用Undertow作为Web服务器,其线程池配置直接影响REST API的并发处理能力,调整standalone.xml中的Undertow子系统:

<subsystem xmlns="urn:jboss:domain:undertow:12.0">
  <buffer-cache name="default"/>
  <!-- 调整Worker线程池:io-threads对应CPU核心数,task线程池处理业务逻辑 -->
  <worker name="default" io-threads="8" task-core-threads="200" task-max-threads="300" task-keepalive="60"/>
  
  <server name="default-server">
    <http-listener name="default" socket-binding="http" max-connections="1000" queue-size="200" connection-timeout="30000"/>
    <!-- 其他配置... -->
  </server>
</subsystem>
  • io-threads:建议设置为CPU核心数的1-2倍,负责IO操作
  • task-core-threads/task-max-threads:控制处理HTTP请求的业务线程数,需根据并发量调整
  • max-connections/queue-size:控制最大连接数和等待队列长度,避免请求被直接拒绝

三、Wildfly数据库连接池调优

REST API启动流程实例、JobExecutor执行作业都依赖数据库连接,需确保数据源连接池足够:

<datasource jndi-name="java:jboss/datasources/CamundaDS" pool-name="CamundaDS" enabled="true">
  <connection-url>jdbc:mysql://your-mysql-host:3306/camunda</connection-url>
  <driver-class>com.mysql.cj.jdbc.Driver</driver-class>
  <security>
    <user-name>camunda</user-name>
    <password>camunda</password>
  </security>
  <!-- 调整连接池参数 -->
  <pool>
    <max-pool-size>200</max-pool-size>
    <min-pool-size>50</min-pool-size>
    <prefill>true</prefill>
    <use-strict-min>false</use-strict-min>
  </pool>
  <validation>
    <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
    <validate-on-match>true</validate-on-match>
    <background-validation>false</background-validation>
  </validation>
</datasource>
  • max-pool-size:需大于等于JobExecutor的maxPoolSize + REST API并发线程数,避免连接耗尽

四、额外排查点

  1. 检查Camunda REST应用的web.xml,确保开启异步支持:
<servlet>
  <servlet-name>CamundaRestApi</servlet-name>
  <servlet-class>org.camunda.bpm.engine.rest.impl.application.DefaultResourceConfig</servlet-class>
  <async-supported>true</async-supported>
</servlet>
  1. 通过Wildfly管理控制台(http://your-wildfly-host:9990)监控:
    • Undertow线程池的活跃线程数、队列长度
    • Camunda JobExecutor的线程使用情况
    • 数据库连接池的连接使用量
  2. 排查ACT_RU_JOB表的慢查询,确保JobExecutor获取作业的SQL有正确索引(比如LOCK_EXP_TIME_、RETRIES_字段的索引)

内容的提问来源于stack exchange,提问作者Lucia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 12:27:52