mq

作者: 徐振杰 | 来源:发表于2019-05-26 23:44 被阅读0次

为什么要用mq?

解耦

mq可以解耦合,系统a和其他系统紧耦合,用mq,其他系统可以自己pub/sub

异步化

提高用户体验

削峰

秒杀中用还可以防止系统被打死

消息队列的优点和缺点?

系统的可用性会降低

mq一挂,整个都挂了

系统的复杂性会变高

本来要传一条消息,结果传了两条,或者消息丢掉了

一致性问题

mq对比?

activemq比较成熟,不更新了
rabbitmq延时低,散户更新,活跃度高
rocketmq 10万并发,阿里的,可能会不维护了
kafka用大数据

mq的高可用怎么玩

rabbitmq
  1. 单机模式
  2. 普通集群模式:会在rabbitmq内产生大量的信息传输,没有保障可用性
  3. 镜像模式:通过将数据传到所有的节点,实现高可用
kalfka

用leader和follower,leader会同步数据给follower

mq的中不被重复消费

可以先去内存set里面看一下
数据库里加唯一键

怎么保证消息的可靠性传输

rabbitmq支持消息的事物
生产者那边
try{
发消息
}catch{
channel.txrollback()
再发一次消息
}
没有报错,那么就提交事物
但是这样生产者那边会同步的,所以吞吐量会降下来
rabbitmq的channel里面有comfirm的机制,可以用回调来避免,并且这种是一种异步的方法

rabbitmq那边
让rabbitmq持久化到磁盘上面

消费者那边
把autoACK关掉,自己设置,写完了再ACK

kalfka
如果kalfka挂掉
设置要求kalfka副本至少为1
设置replica参数至少是1个,也就是同步的follower的数量
设置生产者必须要kalfka写成功之后,才能再发消息
设置retry的值

消息队列过期失效怎么办

rabbitmq可以设置消息的过期时间

相关文章

  • MQ的使用及QMQ的设计

    1. 为什么要用MQ? MQ带来了什么好处? 带来了什么坏处? 为什么要用MQ?MQ(message queue)...

  • RocketMQ整体介绍

    1. MQ介绍 1.1 什么是MQ?为什么要用MQ? MQ:MessageQueue,消息队列。队列,是一种FIF...

  • MQ

    什么是MQ?MQ全称为Message Queue, 消息队列(MQ)是应用程序“对”应用程序的通信方法。MQ:生产...

  • RocketMQ集群消息与广播消费

    如图A项目的MQ组(mq.group=A) A项目部署了两台tomcatB项目的MQ组(mq.group=B)...

  • centos7 安装rabbitMQ 踩坑

    1、安装mq,首先mq以来erlang插件,所以必须安装 erlang 插件 首先在mq官网查看mq和erlang...

  • 消息队列

    MQ的作用 消息通信MQ的基础功能即为消息通信。使用MQ的客户端可以将消息发送到MQ中,也可以从MQ中消费消息。 ...

  • spring 使用 rabbit mq

    rabbit mq 安装 brew 安装 rabbit mq后台rabbit mq后台 用户名:guest 密码...

  • Prometheus监控MQ集群

    mq 为Rabbitmq 。 下载插件:rabbitmq_exporter(集群中所有的mq node)3台mq ...

  • MQ精华液,你值得更好(MQ青春定制)

    MQ 重塑紧致轮廓,绽现纯净光彩 MQ青春定制:MQ精华+MQ波导入+SMAS剥离术 青春之力注入生命之源 在技术...

  • 【MQ】初始MQ

    title: 【MQ】初始MQdate: 2017-12-08 21:48:26tags: MQcategorie...

网友评论

      本文标题:mq

      本文链接:https://www.haomeiwen.com/subject/ryqozqtx.html