java常用组件/中间件的连接数

在 Java 系统中,不同的常用组件/中间件的连接数(并发数)设置差异很大,取决于使用场景、驱动实现、以及系统资源(CPU、内存、网络):


1. 数据库连接池(JDBC / MyBatis / Hibernate)

  • 常用组件:HikariCP、Druid、C3P0

  • 默认连接数

    • HikariCP 默认 10
    • Druid 默认 8
  • 常见设置范围50 ~ 200(和数据库实例能承受的连接数相关)

  • 优化点

    • maxPoolSizeminIdle 要结合 QPS 及 SQL 耗时设置
    • 避免过大连接池(数据库端会被拖垮)

2. Redis 客户端连接

  • 常用组件:Jedis、Lettuce、Redisson

  • 默认连接数

    • Jedis:默认 8
    • Lettuce:默认使用 Netty,多路复用,不依赖大量连接
    • Redisson:默认 24(分布在不同节点)
  • 常见设置范围50 ~ 500

  • 优化点

    • 高并发推荐 Lettuce + Netty 多路复用,减少连接数
    • 配合 Redis Cluster 时,注意对不同节点均衡分配连接

3. 消息队列(RabbitMQ / Kafka)

  • RabbitMQ(AMQP 客户端):

    • 默认连接数 1,但支持多个 channel(轻量级连接)
    • 常用设置:单个应用 1 ~ 10 个连接,多个 channel 分流
  • Kafka(KafkaProducer / KafkaConsumer):

    • Producer 通常 1 个长连接即可(异步批量发送)
    • Consumer 通常和 分区数 对齐(1 个 Consumer 线程 ≈ 1 个分区)

4. HTTP 客户端连接

  • 常用组件:HttpClient、OkHttp、RestTemplate (底层 PoolingHttpClientConnectionManager)

  • 默认连接数

    • Apache HttpClient:默认 20 总连接数,每路由 2
    • OkHttp:默认 5
  • 常见设置范围

    • 总连接数:200 ~ 500
    • 每个路由:50 ~ 200
  • 优化点

    • 高并发场景必须配置连接池(否则频繁 TCP/SSL 握手)

    • 例如:

      PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
      cm.setMaxTotal(500);
      cm.setDefaultMaxPerRoute(100);
      

5. 线程池(并发任务执行)

  • 常用组件:ThreadPoolExecutor、ForkJoinPool、CompletableFuture

  • 常见配置

    • CPU 密集型:核心线程数 = CPU核心数 + 1
    • IO 密集型:核心线程数 = CPU核心数 * 2 ~ 10
    • 队列:LinkedBlockingQueue(有界,避免 OOM)

6. Tomcat / Undertow / Jetty(Web 容器线程数)

  • Tomcat 默认配置

    • maxThreads = 200
    • acceptCount = 100(队列)
  • 优化点

    • 高并发:maxThreads 调整到 500 ~ 1000(视 CPU、JVM 配置)
    • 建议配合 Nginx/网关限流

总结:Java 常用组件的连接数(并发数)大致参考值

组件默认值常见优化范围
数据库连接池8 ~ 1050 ~ 200
Redis (Jedis/Lettuce)850 ~ 500
RabbitMQ11 ~ 10(多 channel)
Kafka1分区数对齐
HttpClient20200 ~ 500
Tomcat maxThreads200500 ~ 1000
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思静鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值