RabbitMQ
文章平均质量分 52
IT1995
每周个人笔记分享,欢迎广大网友查阅!
展开
-
Python&Rabbitmq文档阅读笔记-生产者数据直接送入队列消费者消费
Hello World!使用Pika库连接到Rabbitmq。本次要实现的功能:生产者生直接发送消息到队列中,消费者消费队列中的数据。逻辑结构如下:Rabbitmq的通信协议有很多,这里使用AMQP 0-9-1,其中python对应的库为Pika 1.0.0pip安装此库:python -m pip install pika --upgrade生产者:在发送数据之前需要先建立连接import pikaconnection = pika.BlockingCo原创 2021-03-16 08:42:30 · 684 阅读 · 0 评论 -
Java笔记-Spring-rabbitmq中设置receiveMessage参数为Message
如下代码:public void receiveMessage(Message message){ ...... ......}其中对应的Message为此包:import org.springframework.amqp.core.Message;在listner中这样设置就可以了: MessageListenerAdapter listenerAdapter(Receiver receiver){ MessageListenerAdapter原创 2020-12-24 14:28:47 · 1059 阅读 · 0 评论 -
Java笔记-spring-rabbitmq中使用@RabbitListener消费(手动确认,获header数据)
手动确认时:application.properties需要添加spring.rabbitmq.listener.simple.acknowledge-mode=manual确认ackchannel.basicAck(tag, false);拒收发回rabbitmqchannel.basicReject(tag, true);下面是整体代码 @RabbitListener(queues = queueName) public void disposeSo原创 2020-12-02 19:25:35 · 3194 阅读 · 3 评论 -
Java笔记-spring-rabbitmq中queue设置argument(添加x-message-ttl)
最近在读Spring的官方文档,在此记录下自己做的小实验。这里主要是在生产者中声明和添加: @Bean Queue queue(){ Queue queue = new Queue(queueName, false); queue.addArgument("x-message-ttl" , 30 * 1000); return queue; } @Bean TopicExchange exchange(){原创 2020-12-02 19:23:41 · 1910 阅读 · 0 评论 -
Java笔记-spring-rabbit框架中消息中header的添加
对应的application.properties如下:spring.rabbitmq.host=122.xx.xxx.xxxspring.rabbitmq.port=5672spring.rabbitmq.username=xxxxxxspring.rabbitmq.password=xxxxxxspring.rabbitmq.virtual-host=/xxxxxxspring.rabbitmq.cache.channel.checkout-timeout=10关键代码如下:p原创 2020-12-02 19:22:48 · 1059 阅读 · 1 评论 -
Java&Rabbitmq笔记-Rabbitmq自定义头(Properties中的headers)
这里如下这种不仅仅在Payload中可以放数据。在Properties的headers中也可以放数据。其中basicPublish可以放properties,其properties构造函数如下:public BasicProperties(String contentType, String contentEncoding, Map<String, Object> headers, Integer deliveryMode, Integer priority, Stri原创 2020-09-15 08:33:55 · 1649 阅读 · 2 评论 -
Linux工作笔记-RabbitMQ的安装
目录Erlang安装RabbitMQ安装配置下载地址首先把2个包给搞过去:这里先搞erl再搞rabbitmq这里用root用户搞Erlang安装解压otp_str_20.3.tar.gz后进去:./configure成功后是这样的:然后就是make && make install...原创 2019-11-27 11:02:15 · 4612 阅读 · 0 评论 -
RabbitMQ工作笔记-新建用户及创建虚拟主机
命令:创建用户及设置权限:rabbitmqctl add_user userName password权限有:赋予权限后,然后就可以登录了!rabbitmqctl set_user_tags userName administrator再进行绑定:...原创 2019-10-31 13:29:19 · 4604 阅读 · 1 评论 -
Java笔记-RabbitMQ中生产者端confirm模式(异步模式)
目录基本概念代码与实例基本概念异步模式:Channel对象提供的ConfirmListener()回调方法只包含deliverTag(当前Channel发出的消息序列号),需要自己为每一个Channel维护一个cunconfirm的消息序列号集合,每个publish数据,集合中元素+1,回调一次handleAck方法,unconfirm集合删除相应的一条(mult...原创 2019-07-06 16:58:36 · 5988 阅读 · 0 评论 -
Java笔记-RabbitMQ中生产者端confirm模式
目录基本概念代码与实例基本概念生产者将信号设置成confirm模式,一旦信道进入confirm模式,将有在该信道上面发布的消息都会被指派一个唯一的ID(从1开始),一旦消息被投递到所有匹配的队列后,RabbitMQ就会发送一个确认给生产者(包含消息的唯一ID),这就使得生产者指导消息已经正确到达目的队列,如果消息和队列是可持久化的,那么确认消息将会消息写入磁盘后,bro...原创 2019-07-05 10:40:32 · 5815 阅读 · 0 评论 -
Java笔记-RabbitMQ的消息确认机制(事务)
目录基本概念代码与实例基本概念消息应答与消息持久化,如下代码:boolean autoAck = false;channel.basicConsume(QUEUE_NAME, autoAck, consumer)boolean autoAck = true;这个是自动确认模式,一旦RabbitMQ消息分发给消费者,就会从内存中删除;这种情况下...原创 2019-07-04 21:20:00 · 6096 阅读 · 0 评论 -
Java笔记-使用RabbitMQ的Java接口实现Publish/Subscribe(订阅模式)
目录基本概念代码与实例基本概念模型如上; 1. 一个生产者,多个消费者; 2. 每个消费者都有自己的队列; 3. 生产者没有直接把消息发送到队列,而是发送到交换机,通过交换机转发到队列; 4. 每个队列都要绑定到交换机上; 5. 生...原创 2019-06-29 16:24:14 · 5936 阅读 · 3 评论 -
Java笔记-使用RabbitMQ的Java接口实现topic(主题模式)
目录基本概念代码与实例基本概念实现的就是官方给出的这个模型:Topic exchange:将路由和某模式匹配其中#:匹配一个或多个*:匹配一个比如下面要举得这个例子交换机设置为topic模式,生产者生成的消息的路由键值为goods.XXXX其中XXXX,可能为add、delete、update、modify等队列一绑定的是goo...原创 2019-07-04 09:34:55 · 6834 阅读 · 0 评论 -
Java笔记-使用RabbitMQ的Java接口生产数据并消费
目录基本概念代码及演示基本概念就是官方的这个模型:p为生产者不经过交换机,直接把数据传给消息队列,c为consumer用于消费。这种结构在本科生的时候,经常自己写,现在用RabbitMQ来试试代码及演示发送端点击运行:消费者那边会接收到数据:关键的源码如下:Maven依赖:<dependencies&...原创 2019-06-20 16:14:34 · 6199 阅读 · 4 评论 -
C/C++笔记-使用RabbitMQ的C接口生产数据并消费
目录基本概念代码与实例基本概念使用C语言接口完成官方的这个模型:很有意思。感觉开源的东西真的好,不用自己去写C/C++服务端。p为生产者不经过交换机,直接把数据传给消息队列,c为consumer用于消费。这种结构在本科生的时候,经常自己写,现在用RabbitMQ来试试代码与实例这里有套Java的代码,其实C接口和Java接口差不...原创 2019-06-21 09:13:33 · 10671 阅读 · 6 评论 -
Java笔记-使用RabbitMQ的Java接口实现Fair dispatch(公平分发)
目录基本概念代码与实例基本概念当某些客户端处理比较强的时候,就多发数据让其处理,当某些客户端处理一般的时候,就少发数据让其处理。主要是让消费者处理完后,回信息给RabbitMQ,然后RabbitMQ才会发送下一个。使用basicQos(perfetch = 1)注意:使用公平分发必须关闭自动应答ack改成手动。代码与实例程序运行截图如下:...原创 2019-06-25 10:21:11 · 4604 阅读 · 0 评论 -
Spring Boot笔记-发送消息给RabbitMQ
目录基本概念代码及演示基本概念RabbitMQ消息中间件是在消息的传输过程中保存消息的容器。消息中间件充当中间人的作用将源消息发送到目标消息。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接受者不可用,消息队列会保留消息,直到可以成功地传递它为止,当然,消息队列保存消息有期限。应用程序和应用程序调用关系为松耦合关系发送者和接受者不必了解对方、只...原创 2019-06-17 23:08:39 · 5067 阅读 · 0 评论 -
Spring Boot笔记-接收RabbitMQ队列中的消息
目录基本概念代码与实例基本概念首先有个关键:此处实验接收的数据类型为Order,这里要求发送和接收要一模一样。包括包名和类名都要一模一样:如下,consumerDemo下面是productorDemo这里,包名和类都一模一样否则接收端监听会失败!在消费(接收订阅)端要配置一些数据:spring.rabbitmq.listen...原创 2019-06-18 11:30:48 · 9277 阅读 · 0 评论 -
Java笔记-使用RabbitMQ的Java接口实现round-robin(轮询分发)
目录基本概念代码与实例基本概念简单队列的不足: 1. 耦合性高; 2. 如果生产者把生产队列该了,消费者也要同时改;Work Queues工作队列,模型如下:代码与实例程序运行截图如下:生产者:两个消费者如下:在源码中,消费者一个是1秒消费一次,一个是2秒消费一次...原创 2019-06-22 14:56:41 · 5258 阅读 · 2 评论 -
Spring Boot工作笔记-RabbitMQ中Unsupported major.minor version 52.0问题
目录错误演示解决方法错误演示字符串如下:java.lang.UnsupportedClassVersionError: com/rabbitmq/client/ConnectionFactory :Unsupported major.minor version 52.0造成这个问题的原因是RabbitMQ中的接口使用了Java 1.8的东西,而目前Ja...原创 2019-07-02 15:40:21 · 5094 阅读 · 1 评论 -
Java笔记-Spring中RabbitMQ的调用
目录基本概念代码与演示基本概念Spring中已经整合了RabbitMQ,通过配置bean文件,然后在源码中加载,可以简化代码操作。身为C++程序员不得不说这种方式真的是太爽了。在本人做过的某些项目中,很多大佬也喜欢用C++采用这种方式,进行函数的回调。配置一个xml文件,指定dll和c接口,从而进行回调,这样可以时得程序变得更加的灵活。代码与...原创 2019-07-08 09:33:41 · 4647 阅读 · 1 评论 -
Java笔记-使用RabbitMQ的Java接口实现Routing(路由模式)
目录基本概念代码与实例基本概念过程图如下:主要是把交换机设置为直连的方式direct直连的方式然后把 数据 发送给交换机。交换机再通过路由的Key值转发到队列上。每一个客户端,都有一个队列,监听自己的队列就可以收到RabbitMQ转发过来的数据了。代码与实例其中recv1就绑定了error路由键recv2绑定了info、error...原创 2019-07-03 09:49:16 · 5159 阅读 · 1 评论 -
RabbitMQ笔记-使用rabbitmq-c实现Fair dispatch(公平分发)
目录概念及注意代码与实例概念及注意这里C接口中有2个函数一个是:amqp_basic_get()另外一个是:amqp_basic_consume()前者可以一条一条的读取,后者是一次读取一大坨数据。所以目前要使用amqp_basic_get()去读取RabbitMQ的数据,同时使用amqp_read_message()把数据给读出来。读完一...原创 2019-06-28 16:16:38 · 5353 阅读 · 4 评论 -
RabbitMQ笔记-使用rabbitmq-c让生产者发送数据
目录环境下载地址过程环境RabbitMQ和Erlang的版本如下:rabbitmq-c的版本下载地址RabbitMQ下载地址:https://www.rabbitmq.com/download.html这里注意RabbitMQ 3.6.5的对应的Erlang的版本注意是19.X,不然web管控台插件会安装不上rabb...原创 2019-06-20 09:07:53 · 5680 阅读 · 2 评论