![](https://img-blog.csdnimg.cn/8e37245ea6e941c6a2c5360cdaffd19f.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
RabbitMQ
文章平均质量分 53
RabbitMQ
Black_Me_Bo
最长的路也有尽头,最黑暗的夜晚也会迎接清晨。
展开
-
09-SpringAMQP-消息转换器
消息转换器Spring会把消息序列化为字节发送给MQ,接收消息的时候,还会把字节反序列化为Java对象。默认情况下Spring采用的序列化方式是JDK序列化。众所周知,JDK序列化存在下列问题:数据体积过大有安全漏洞可读性差测试JDK默认转换器我们修改消息发送的代码,发送一个Map对象:@Testpublic void testSendMap() throws InterruptedException { // 准备消息 Map<String,Object>原创 2022-02-11 21:33:21 · 200 阅读 · 0 评论 -
08-SpringAMQP-TopicExchange(发布订阅)
TopicExchange(主题模式)说明Topic类型的Exchange与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符!Routingkey 一般都是有一个或多个单词组成,多个单词之间以.分割,例如: bttc.insert通配符规则:#:匹配一个或多个词*:匹配1个词举例:item.#:能够匹配item.spu.insert 或者 item.spuitem.*:只能原创 2022-02-11 21:15:43 · 111 阅读 · 0 评论 -
07-SpringAMQP-DirectExchange(发布订阅)
DirectExchange(路由模式)Direct Exchange 会将接收到的消息根据规则路由到指定的Queue,因此称为路由模式(routes)。每一个Queue都与Exchange设置一个BindingKey发布者发送消息时,指定消息的RoutingKeyExchange将消息路由到BindingKey与消息RoutingKey一致的队列基于注解声明队列和交换机@RabbitListener(bindings = @QueueBinding( value = @Queu原创 2022-02-11 21:15:00 · 89 阅读 · 0 评论 -
06-SpringAMQP-FanoutExchange(发布/订阅)
发布/订阅可以看到,在订阅模型中,多了一个exchange角色,而且过程略有变化:Publisher:生产者,也就是要发送消息的程序,但是不再发送到队列中,而是发给交换机Exchange:交换机。一方面,接收生产者发送的消息。另一方面,知道如何处理消息,例如递交给某个特别队列、递交给所有队列、或是将消息丢弃。到底如何操作,取决于Exchange的类型。Exchange有以下3种类型:Fanout:广播,将消息交给所有绑定到交换机的队列Direct:定向,把消息交给符合指定routing k原创 2022-02-11 20:41:29 · 181 阅读 · 0 评论 -
05-SpringAMQP-WorkQueue
WorkQueueWork queues,也被称为(Task queues),任务模型。简单来说就是让多个消费者绑定到一个队列,共同消费队列中的消息。当生产者生产消息速度圆圆大于消息消费速度,消息会出现堆积的情况,此时就可以用work模型,多个消费者共同处理消息,苏打会大大提高。Work模型的使用:多个消费者绑定到一个队列,同一条消息只会被一个消费者处理通过设置prefetch来控制消费者预取的消息数量消息发送在publisher服务中的SpringAmqpTest类中添加一个测试方法:原创 2022-02-11 20:40:20 · 359 阅读 · 0 评论 -
04-SpringAMQP-Base Queue
SpringAMQPSpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便。SpringAmqp的官方地址:https://spring.io/projects/spring-amqpSpringAMQP提供了三个功能:自动声明队列、交换机及其绑定关系基于注解的监听器模式,异步接收消息封装了RabbitTemplate工具,用于发送消息Basic Queue 简单队列模型在项目中引入依赖<!--AMQP依赖,包原创 2022-02-11 20:39:56 · 446 阅读 · 0 评论 -
03-RabbitMQ入门
RabbitMQ入门安装RabbitMQ参考:https://editor.csdn.net/md/?articleId=122882190RabbitMQ的结构和概念RabbitMQ中的一些角色:publisher:生产者consumer:消费者exchange:交换机,负责消息路由queue:队列,存储消息virtualHost:虚拟主机,隔离不同租户的exchange、queue、消息的隔离RabbitMQ消息模型基本消息队列工作消息队列根据交换机类型不同又划分三种原创 2022-02-11 16:51:51 · 604 阅读 · 0 评论 -
02-RabbitMQ安装
单机安装下载镜像在线拉取docker pull rabbitmq:3-management从本地加载下载好镜像压缩包,上传到服务器然后使用命令加载镜像即可docker load -i MQ.tar安装RabbitMQ执行下面的命令来运行MQ容器:docker run \ -e RABBITMQ_DEFAULT_USER=blackme \ -e RABBITMQ_DEFAULT_PASS=123456 \ --name mq \ --hostname mq1 \ -p 156原创 2022-02-11 15:46:51 · 69 阅读 · 0 评论 -
01-MQ入门
MQ入门同步通讯和异步通讯同步通讯:需要实时响应异步通讯:不需要马上响应两种方式各有优劣,同步通讯可以立即得到响应,但是你却不能跟服务同时通讯。异步通讯可以同时与多服务通讯,但是往往响应会有延迟。同步通讯Feign的调用就是属于同步通讯弊端:耦合度高:每次加入新的需求,都要修改原来的代码性能下降:调用者需要等待服务提供者响应,如果调用链过长则响应时间等于每次调用的时间之和。资源浪费:调用链中的每个服务在等待响应过程中,不能释放请求占用的资源,高并发场景下会极度浪费系统资源级联失败:如原创 2022-02-11 15:36:02 · 649 阅读 · 0 评论