java简单整合RabbitMQ(工具包)

   日期:2020-08-22     浏览:91    评论:0    
核心提示:RabbitMQ工具包主要实现:1:不需要其他操作,使用者只需要提供一个队列的名称2:可扩展,需要其他功能时可以兼容扩展一:导包 com.rabbitmq amqp-client 5.2.0

RabbitMQ工具包

主要实现:
   1:不需要其他操作,使用者只需要提供一个队列的名称
   2:可扩展,需要其他功能时可以兼容扩展

测试结果

1:多线程下无法保证消费顺序
2:单线程下是以轮询的方式进行消费且能够保证消费顺序
3:现在支持多消费者,如果需要单独消费者则只需要改下参数,改成独占模式,代码里有注释
4:多线程1000个情况下暂没发现重复消费的情况

目录

  • RabbitMQ工具包
    • 测试结果
    • 一:导包
    • 二:结构
    • 三:逻辑&&代码
        • 1:config包
        • 2:demo包
        • 3:connection包
        • 3:consumer包
        • 4:entity包
        • 5:provider包
    • 四:具体流程
    • 五:后续修改
    • 五:未完待续

一:导包

    <dependency>
        <groupId>com.rabbitmq</groupId>
        <artifactId>amqp-client</artifactId>
        <version>5.2.0</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-amqp</artifactId>
        <version>2.0.3.RELEASE</version>
    </dependency>

一个amqp客户端包和amqp协议包

二:结构

三:逻辑&&代码

1:config包

   1:Config类中保存RabbitConnection连接的所有参数,如:用户名,密码,虚拟地址等
   2:Dict类中保存着RabbitMq的默认交换机名称和类型Dirct,Fanout,Topic等

2:demo包

   RabbitDemo类中主要是一些使用方法和说明

3:connection包

  1:RabbitChannel类是获取RabbitMQ管道的类,在RabbitMQ中管道是连接的方式

	这里面的配置基本上是默认设置,如果需要其他功能只需要添加参数即可


2:RabbitConnection类是用于获取RabbitMQ连接

3:consumer包

1:ConsumerMke类是消费者实现类:代码为提供消费者消费的实现,不是具体实现过程

2:ConsumerRki类:主要是实现ConsumerSvi接口,获取参数,设置参数,获取管道(Channel)--就截一小截图

3:ConsumerSvi类:提供接口,方便实现

4:ConsumerTem类:因为消费者调用时使用的内部类所以为了做成工具包,我就提供了Tem类用于写具体消费过程

4:entity包

1:ChannelDto:主要是获取管道的一些参数

5:provider包

1:ProviderMke类:生产者实现类--用于发送消息,今天又加了个过期时间设置

2:ProviderRki类:生产者接口实现类--
这个和消费者接口实现类大同小异,多了个过期时间设置(过期时间分单条消息过期时间和队列消息过期时间,我这里是使用的单条消息过期时间)

3:ProviderSvi类:生产者接口类--提供参数接口方便填写参数

四:具体流程

五:后续修改

由于测试发现当有大量消费者时,RabbitMQ会创建等同数量的管道和连接,但是创建大量TCP连接会消耗过多的资源,所以我修改成一个连接生成5个管道

五:未完待续

这个工具包现在能够进行简单的发消息和消费消息,但是是远远不够的,这段时间我看能不能实现更多更复杂的功能,当然使用这工具要越来越简单
最后希望大家能给予建议和创造性的想法 谢谢. --  如果有人需要源码来批判我 可以私聊我... 
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服