我用ChatGPT,给RabbitMQ加了个连接池
大家好呀,我是楼仔。
上次我把 RabbitMQ 集成到项目中,但是每次使用 RabbitMQ 时都去 New 一个连接,导致并发起不来,所以这次我们就给 RabbitMQ 加一个连接池。
为了偷个懒,我直接用 ChatGPT 教我加。
01 ChatGPT 生成的代码
我输入的关键字如下:
rabbitmq 实现一个连接池 java
下面是 GhatGPT 4.0 给我的回复:
以下是在Java中使用连接池创建RabbitMQ连接的示例:
首先,需要添加pika客户端依赖项,例如:
com.rabbitmq
amqp-client
5.9.0
创建一个RabbitMQ连接类:
import com.rabbitmq.client.Connection;
public class RabbitMQConnection {
private Connection connection;
public RabbitMQConnection(String host, int port, String username, String password) {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost(host);
factory.setPort(port);
factory.setUsername(username);
factory.setPassword(password);
try {
connection = factory.newConnection();
} catch (IOException | TimeoutException e) {
e.printStackTrace();
}
}
public Connection getConnection() {
return connection;
}
public void close() {
try {
connection.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
创建一个RabbitMQ连接池类:
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
public class RabbitMQConnectionPool {
private final BlockingQueue pool;
public RabbitMQConnectionPool(String host, int port, String username, String password, int poolSize) {
pool = new LinkedBlockingQueue<>(poolSize);
for (int i = 0; i < poolSize; i++) {
pool.add(new RabbitMQConnection(host, port, username, password));
}
}
public RabbitMQConnection getConnection() throws InterruptedException {
return pool.take();
}
public void returnConnection(RabbitMQConnection connection) {
pool.add(connection);
}
public void close() {
pool.forEach(RabbitMQConnection::close);
}
}
创建一个消费者类:
import com.rabbitmq.client.*;
public class RabbitMQConsumer implements Runnable {
private final RabbitMQConnectionPool connectionPool;
private final St...
已加入星球,可直接知识星球授权登录
二哥编程星球目前包含:
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
1. 微信扫右侧的优惠券加入知识星球
2. 解锁星球的实战项目教程和源码: 项目源码+教程获取
回复