多线程实现RabbitMQ的RPC模式

实现逻辑:模拟多个客户端进行升级任务,使用一个请求队列(由服务器端声明创建),每一个客户端为自己创建独一无二的临时响应队列,用于接收升级进度;

一、linux服务器中使用docker部署RabbitMQ

docker run -id --name=rabbitmq -v /home/file/mq -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:management

其中,15672可以访问RabbitMQ的管理页面,5672用于客户端和服务器端使用RabbitMQ的通信,账户和密码用于登录管理页面,进行访问时要打开端口;

二、模拟实现多个客户端

调用顺序:Client_Multi—>Multi_Thread—>Client_one_task

资源类访问RabbitMQ的实现和线程池实现分开

1.在pom.xml中配置依赖
<dependencies>
        <!--        rabbitmq 依赖客户端-->
        <dependency>
            <groupId>com.rabbitmq</groupId>
            <artifactId>amqp-client</artifactId>
            <version>5.8.0</version>
        </dependency>
        <!--        slf4j日志-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.36</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.67_noneautotype2</version>
        </dependency>

    </dependencies>
2.Client_Multi(使用循环模拟多个客户端)
public class Client_Multi {
   
   

    public static ExecutorService msgHandleService = Executors.newFixedThreadPool(5);

    public static void main(String[] args) {
   
   
        Runtime.getRuntime().addShutdownHook(new Thread(() -> {
   
   
            System.out.println("线程池关闭!!!");
            msgHandleService.shutdown();
        }));
        for (int i = 0; i < 2; i++) {
   
   
            msgHandleService.execute(new Multi_Thread.MessageHandleTask("升级"+i+"命令"));
        }
    }
}
3.Multi_Thread(线程池的实现)
public class Multi_Thread{
   
   

    public static Logger logger = LoggerFactory.getLogger(Multi_Thread.class);


    public static class MessageHandleTask implements Runnable {
   
   

        String message;
        public MessageHandleTask(String message) {
   
   
            this.message = message;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值