关于RabbitMQ的学习笔记

RabbitMQ是一个消息中间件,作用是用来将服务之间解耦,提高容错率,想象一下:如果A服务出现问题,那么依赖它的B服务就会直接瘫痪,而如果我们使用消息队列之后,B服务将消息丢到队列以后,就算是成功了,接下来只需要等待A执行就好

2023/11/30

1.常用的其他消息中间件

  • ActiveMQ,性能不是很好,因此在高并发的场景下,直接被pass掉了。它的Api很完善,在中小型互联网公司可以去使用。
  • kafka,主要强调高性能,如果对业务需要可靠性消息的投递的时候。那么就不能够选择kafka了。但是如果做一些日志收集呢,kafka还是很好的。因为kafka的性能是十分好的。
  • RocketMQ,它的特点非常好。它高性能、满足可靠性、分布式事物、支持水平扩展、上亿级别的消息堆积、主从之间的切换等等。MQ的所有优点它基本都满足。但是它最大的缺点:商业版收费。因此它有许多功能是不对外提供的。
  • RabbitMQ,

    在高可用上,它使用的是镜像集群模式,可以保证高可用。在消息可靠性上,它是可以保证数据不丢失的,这也是它的一大优点。同时它也支持一些消息中间件的高级功能,如:消息重试、死信队列等。但是,它的开发语言是erlang

2.RabbitMQ的安装与配置

        首先安装语言erlang,到官方下载erlang我下载的是最新版本26.1.2

        下载 - Erlang/OTP

        然后到RabbitMQ下载页面下载与之对应的版本,我也下载的最新3.12.10
        Release RabbitMQ 3.12.10 · rabbitmq/rabbitmq-server (github.com)

        安装完了erlang之间配一下环境变量

        安装完了rabbitmq之后需要执行两个命令

        详情参考RabbitMQ详解,用心看完这一篇就够了【重点】-CSDN博客

        1.rabbitmq-plugins enable rabbitmq_management 

        2.rabbitmqctl status
        这里第二个命令是会报错,解决办法如下

        1.替换文件

        2.用户权限

        详情参考【Spring常见错误】Rabbitmq 常见问题_suggestion: start the node-CSDN博客

3.RabbitMQ的工作原理

        生产者-消费者

        生产者发送请求到中间件,中间件转发消息到消费者

        

生产者发送带有路由的请求,由交换机决定发送到哪个消息队列

4.三种交换机类型

1. Direct Exchange(直连交换机)

  • 工作方式:在这种类型的交换机中,消息是基于消息携带的路由键(routing key)发送的。您需要做的是将队列绑定到交换机,并指定一个路由键。
  • 用例:如果您有一个路由键为 "error" 的消息,那么它只会被发送到那些绑定了相同路由键 "error" 的队列。

2. Fanout Exchange(扇型交换机)

  • 工作方式:这种类型的交换机会将消息发送到所有绑定到它的队列,忽略路由键。也就是说,一旦消息发送到扇型交换机,它会被分发到所有绑定的队列。
  • 用例:如果您希望广播某个消息给多个队列,可以使用扇型交换机。例如,用于系统中的日志记录,每个绑定的队列都可以接收到所有日志消息。

3. Topic Exchange(主题交换机)

  • 工作方式:主题交换机更为灵活,它允许使用通配符绑定路由键。队列通过指定一个模式来绑定到交换机。交换机根据消息的路由键,将消息路由到一个或多个匹配该模式的队列。
  • 用例:例如,您可以有一个路由键为 "user.created" 的消息,它可以被路由到所有绑定了 "user.*""*.created" 的队列。

比较

  • Direct Exchange 更适合点对点的精确路由。
  • Fanout Exchange 用于广播消息,当你需要将同一消息发送到多个队列时。
  • Topic Exchange 提供了基于模式匹配的灵活路由机制,非常适合多种路由场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值