1.初始MQ

1.MQ简介

1.1MQ是什么

MQ即消息队列。队列是数据结构中的一种,具有先进先出的特性。

1.2为什么要使用MQ

  • 解耦:A与B系统远程调用,A把东西给MQ,这时,哪怕A的服务挂了,B从MQ拿需要的东西就行了。

  • 异步:假如下单系统下单后,需要调用支付系统,有了MQ之后,下单系统只需要在MQ中写入下单的信息既可以返回,支付系统去MQ监听是否有下单的信息即可。

  • 流量削峰:双11的时候,需要下单请求,服务器可能吃不消,此时可以将请求先缓存在消息队列,然后系统每秒拿出2k的请求来处理。

  • 数据分发:把A系统产生的数据放到MQ,需要该数据的系统,自己去MQ拿。

1.3MQ注意事项

  • 优点:上述的使用原因

  • 缺点:

    • 系统可用性降低
      虽然解耦了,但是又与MQ耦合了,MQ挂了怎么办?
    • 系统复杂度提高
      1. 从以前的同步远程调用到现在的异步调用
      2. 如何保证消息没有被重复消费、如何处理消息丢失情况?
      3. 如何保证消息传递的顺序性?
    • 一致性问题
      A通过MQ给B、C、D发消息,如果B、C成功,D失败,如何保证数据处理的一致性?

1.4各MQ产品比较

常见的MQ包括Kafka、ActiveMQ、RabbitMQ、RocketMQ


mq.png

2.安装与启动MQ

2.1 安装

2.2 启动

  1. 启动NameServer
1.启动NameServer
nohup sh bin/mqnamesrv &
2.查看启动日志
tail -f ~/logs/rocketmqlogs/namesrv.log
  1. 启动Broker
1.启动Broker
nohup sh bin/mqbroker -n localhost:9876 &
2.查看启动日志
tail -f ~/logs/rocketmqlogs/broker.log
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转载自:https://www.jianshu.com/p/859eba791f2b 概述 大家平时也有用到一些消...
    星海辰光大人阅读 1,405评论 0 11
  • 消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。通...
    程序员技术圈阅读 3,712评论 1 8
  • 消息队列 什么是消息队列(Message Queue,MQ)呢? 首先回忆下生活中在餐馆点餐的场景,当你点完餐之后...
    JunChow520阅读 3,169评论 0 29
  • 概述 大家平时也有用到一些消息中间件(MQ),但是可能对于 MQ 的理解仅仅停留在会使用 API 能实现生产消息、...
    路人甲已病阅读 496评论 0 0
  • 人与人之间沟通与交流有着最根本的障碍,便是两者之间三观不同的问题。 如果对同一问题两者之间认知是一致的,那么只要互...
    森晴小语阅读 686评论 0 51

友情链接更多精彩内容