RabbitMQ
小泽不会Java
本人主攻后端,冲冲冲。
展开
-
消息转换器(json)
之前说过,Spring会把你发送的消息序列化为字节发送给MQ,接收消息的时候,还会把字节反序列化为Java对象。只不过,默认情况下Spring采用的序列化方式是JDK序列化。众所周知,JDK序列化存在下列问题: 数据体积过大 有安全漏洞 可读性差 步骤1:在父工程中引入依赖<dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <ar原创 2022-04-21 20:01:21 · 902 阅读 · 0 评论 -
TopicExchange交换机简单使用。
Topic类型的Exchange与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符!通配符规则:#:匹配一个或多个词*:匹配不多不少恰好1个词代码实现1:在publisher服务的SpringAmqpTest类中添加测试方法:@Testpublic void testSendTopicExchange() { // 交换机名称 Strin...原创 2022-04-21 19:28:26 · 173 阅读 · 0 评论 -
DirectExchange交换机的简单使用。
在Fanout模式中,一条消息,会被所有订阅的队列都消费。但是,在某些场景下,我们希望不同的消息被不同的队列消费。这时就要用到Direct类型的Exchange。在Direct模型下: 队列与交换机的绑定,不能是任意绑定了,而是要指定一个RoutingKey(路由key) 消息的发送方在 向 Exchange发送消息时,也必须指定消息的 RoutingKey。 Exchange不再把消息交给每一个绑定的队列,而是根据消息的Routing Key进行判断,只有队列的Routi原创 2022-04-21 19:10:46 · 736 阅读 · 0 评论 -
FanoutExchange交换机简单使用
1:首先呢,为什么要使用交换机?我个人得想法是:当发布者将消息直接放入队列中以后,一旦消费者对此消息使用,则消息将会从队列中删除,导致其他消费者拿不到队列中得消息。可以看到,在订阅模型中,多了一个exchange角色,而且过程略有变化: Publisher:生产者,也就是要发送消息的程序,但是不再发送到队列中,而是发给交换机 Exchange:交换机。一方面,接收生产者发送的消息。另一方面,知道如何处理消息,例如递交给某个特别队列、递交给所有队列、或是将消息丢弃。到底如何操作,.原创 2022-04-21 18:41:26 · 1146 阅读 · 0 评论 -
SpringAMQP快速入门
1:首先在父工程中引入依赖(这里包括amqp的依赖和单元测试依赖)。 <!--AMQP依赖,包含RabbitMQ--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dep原创 2022-04-21 11:36:58 · 2155 阅读 · 0 评论 -
MQ的四大核心概念
1:生产者。产生数据发送消息的程序是生产者。2:交换机。交换机是 RabbitMQ 非常重要的一个部件,一方面它接收来自生产者的消息,另一方面它将消息推送到队列中。交换机必须确切知道如何处理它接 收到的消息,是将这些消息推送到特定队列还是推送到多个队列,亦或者是把消息丢弃,这个得有交换机类型决定。3:队列。队列是 RabbitMQ 内部使用的一种数据结构,尽管消息流经 RabbitMQ 和应用程序,但它们只能存储在队列中。队列仅受主机的内存和磁盘限制的约束,本质上是一个大的消息缓冲区。许原创 2022-04-04 23:29:10 · 2060 阅读 · 0 评论 -
Mq的分类以及选择
1:分类。(1)ActiveMQ优点:单机吞吐量万级,时效性 ms 级,可用性高,基于主从架构实现高可用性,消息可靠性较 低的概率丢失数据缺点:官方社区现在对 ActiveMQ 5.x 维护越来越少,高吞吐量场景较少使用(2)Kafka 大数据的杀手锏,谈到大数据领域内的消息传输,则绕不开 Kafka,这款为大数据而生的消息中间件, 以其百万级 TPS的吞吐量名声大噪,迅速成为大数据领域的宠儿,在数据采集、传输、存储的过程中发挥着举足轻重的作用。目前已经被 LinkedI...原创 2022-04-04 22:49:47 · 1667 阅读 · 0 评论