【rabbitmq】开始封装mq(一)

前言

今天别人问到mq,所以准备学习下怎么封装
之前,去年吧,参考文档写了一遍示例:https://blog.csdn.net/qq_35387940/article/details/100514134
但是正式使用的话,还需要封装一下的。

首先,了解相关知识

问了下群里,他们说需要根据mq特性封装
在这里插入图片描述
自己对这方面是一窍不通的,项目里面是有封装好的,先看一遍,然后接下来撸文章。

消息队列(RabbitMQ)的主要特性、优点、缺点

↓↓↓下列内容转载自https://ask.naixuejiaoyu.com/article/1659
RabbitMQ于2007年发布,是一个在AMQP (高级消息队列协议)基础上完成的,可复用的企业消息系统,是当前最主流的消息中间件之一。
在这里插入图片描述
主要特性

  1. 可靠性:提供了多种技术可以让你在 性能 和 可靠性 之间进行 权衡。这些技术包括 持久性机制、投递确认、发布者证实 和 高可用性机制;
  2. 灵活的路由:消息在到达队列前是通过 交换机 进行 路由 的。RabbitMQ 为典型的路由逻辑提供了 多种内置交换机 类型。如果你有更复杂的路由需求,可以将这些交换机组合起来使用,你甚至可以实现自己的交换机类型,并且当做 RabbitMQ 的 插件 来使用;
  3. 消息集群:在相同局域网中的多个 RabbitMQ 服务器可以 聚合 在一起,作为一个独立的逻辑代理来使用;
  4. 队列高可用:队列可以在集群中的机器上 进行镜像,以确保在硬件问题下还保证 消息安全;
  5. 支持多种协议:支持 多种消息队列协议;
  6. 支持多种语言:用 Erlang 语言编写,支持只要是你能想到的 所有编程语言;
  7. 管理界面: RabbitMQ 有一个易用的 用户界面,使得用户可以 监控 和 管理 消息 Broker 的许多方面;
  8. 跟踪机制:如果 消息异常,RabbitMQ 提供消息跟踪机制,使用者可以找出发生了什么;
  9. 插件机制:提供了许多 插件,来从多方面进行扩展,也可以编写自己的插件。

部署环境
RabbitMQ 可以运行在 Erlang 语言所支持的平台之上,包括 Solaris,BSD,Linux,MacOSX,TRU64,Windows 等。使用 RabbitMQ 需要:
ErLang 语言包
RabbitMQ 安装包

优点

  1. 由于 Erlang 语言的特性,消息队列性能较好,支持 高并发;
  2. 健壮、稳定、易用、跨平台、支持 多种语言、文档齐全;
  3. 有消息 确认机制 和 持久化机制,可靠性高;
  4. 高度可定制的 路由;
  5. 管理界面 较丰富,在互联网公司也有较大规模的应用,社区活跃度高。

缺点

  1. 尽管结合 Erlang 语言本身的并发优势,性能较好,但是不利于做 二次开发和维护;
  2. 实现了 代理架构,意味着消息在发送到客户端之前可以在 中央节点 上排队。此特性使得 RabbitMQ 易于使用和部署,但是使得其 运行速度较慢,因为中央节点 增加了延迟,消息封装后 也比较大;
  3. 需要学习 比较复杂 的 接口和协议,学习和维护成本较高。

猜你喜欢

转载自blog.csdn.net/s1441101265/article/details/115076164