解耦场景

  1. spark 发告警,同过kafka来解耦

削峰场景

  1. 日志采集生产环境几百台,当后续数量持续增加时,如果不加消息队列或者内存队列,可能把数据库打死

一个中间件:

  1. 为什么用 -》解决什么问题
  2. 有什么作用,优点和缺点
  3. 是否横向对比

为什么用 -> 解决什么问题 -> 有什么作用 -> 优缺点

为什么用 -> 遇到问题/场景-> 比较 -> 优缺点

场景 = 问题

高可用 -> 数据冗余

消息可靠传输出现问题的环节

生产者

  1. 确认机制

MQ

  1. 副本
  2. 持久化

消费者

  1. offset、想mq确认

顺序一致性:

生产者

  1. 消息按照key划分成多个队列,每个队列一个生产者,单线程发送,每确认成功一条后,再发送第二条

MQ:

  1. 消息按照key划分成多个队列,key相同的消息进入一个队列

消费者

  1. 消息按照key划分成多个队列,每个队列一个消费者,单线程消费,每确认成功一条后,再消费第二条

关于mq的思考的更多相关文章

  1. [Java] 分布式消息队列(MQ)

    概述 场景 服务解耦 削峰填谷 异步化缓冲:最终一致性/柔性事务 MQ应用思考点 生产端可靠性投递 消费端幂等:消息只能消费一次 高可用.低延迟.可靠性 消息堆积能力 可扩展性 业界主流MQ Acti ...

  2. 消息中间件——RabbitMQ(七)高级特性全在这里!(上)

    前言 前面我们介绍了RabbitMQ的安装.各大消息中间件的对比.AMQP核心概念.管控台的使用.快速入门RabbitMQ.本章将介绍RabbitMQ的高级特性.分两篇(上/下)进行介绍. 消息如何保 ...

  3. 在ActiveMQ中使用SingleConnectionFactory遇到的坑

    我们在生产环境使用了ActiveMQ作为消息中间件,消息中间件连接到数据库对消息进行持久化. 最近发生了一个奇怪的事情,消费者端的生产日志总是报如下错误: The JMS connection has ...

  4. 通过rocketmq思考一下mq的设计取舍

    1. RocketMQ路由中心NameServer 2. RocketMQ消息发送 3. RocketMQ消息存储 4. RocketMQ消息消费 5. 消息过滤FiterServer 6. Rock ...

  5. 面向服务体系架构(SOA)和数据仓库(DW)的思考基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台

    面向服务体系架构(SOA)和数据仓库(DW)的思考 基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台 当前业界对面向服务体系架构(SOA)和数据仓库(Data Warehouse, ...

  6. 参加完Rocket MQ Meetup深圳站,回顾和想法

    最近一段时间才开始关注云栖社区的公众号,在两周前看到要在深圳科兴科学园办一场Rocket MQ的Meetup.因为从来没有参加过这种线下活动,而且对Rocket MQ比较感兴趣,所以就立即报名参加. ...

  7. 分布式唯一id:snowflake算法思考

    匠心零度 转载请注明原创出处,谢谢! 缘起 为什么会突然谈到分布式唯一id呢?原因是最近在准备使用RocketMQ,看看官网介绍: 一句话,消息可能会重复,所以消费端需要做幂等.为什么消息会重复后续R ...

  8. MQ(消息队列)常见的应用场景解析

    前言 提高系统性能首先考虑的是数据库的优化,之前一篇文章<数据库的使用你可能忽略了这些>中有提到过开发中,针对数据库需要注意的事项.但是数据库因为历史原因,横向扩展是一件非常复杂的工程,所 ...

  9. Rabbit MQ 消息确认和持久化机制

    一:确认种类 RabbitMQ的消息确认有两种.一种是消息发送确认,用来确认生产者将消息发送给交换器,交换器传递给队列的过程中消息是否成功投递.发送确认分为两步,一是确认是否到达交换器,二是确认是否到 ...

随机推荐

  1. fluent中如何对一个非整个volume的特定的区域进行数据分析?【转载】

    作者:王蒙 链接:https://www.zhihu.com/question/37432813 来源:知乎 很抱歉,我不知道 fluent 中是否有这一功能,我这个学期才开始学.但 CFD-Post ...

  2. unctf esayrop wp

    目录 题目基本信息 题目漏洞 思路 exp脚本 题目基本信息 题目漏洞 首先在main函数中需要绕过一个if判断才能进入漏洞函数 漏洞函数中很明显的栈溢出漏洞,同时还控制了返回地址不能超过文件映射到内 ...

  3. SSM整合小结

    基本环境搭建 pom依赖 <dependencies> <!--Junit--> <dependency> <groupId>junit</gro ...

  4. GO -- 遍历删除 数组 slice

    删的继续, 没删的i++

  5. sql server 使用SqlBulkCopy批量插入数据库

    sql server sqlbulkcopy 批量数据插入数据库使用的是System.Data.SqlClient中的 SqlBulkCopy批量数据插入数据库 sql server 使用SqlBul ...

  6. Windows安装Centos7双系统后Windows启动项消失

    原文: https://www.cnblogs.com/xinglichao/p/9999049.html https://blog.csdn.net/yingzinanfei/article/det ...

  7. Oracle scope中 spfile、memory、both 的区别

    Oracle里面有个叫做spfile的东西,就是动态参数文件,里面设置了Oracle 的各种参数. 所谓的动态,就是说你可以在不关闭数据库的情况下,更改数据库参数,记录在spfile里面. 更改参数的 ...

  8. MySQL 8.0: From SQL Tables to JSON Documents (and back again)

    MySQL 8.0: From SQL Tables to JSON Documents (and back again) | MySQL Server Bloghttps://mysqlserver ...

  9. hadoop目录命令

    下面是经常使用到的,以此记录备忘 1.查看hadoop目录 命令: hadoop fs -ls / 2.创建目录 命令:hadoop fs -mkdir /目录名 3.将文件上传hadoop中(也就是 ...

  10. css 命名规范参考[转]

    命名空间 另外最好的实践就是当命名你的类名的时候,使用命名空间前缀来进行分类.这些前缀会在你的命名前添加一组字符,但是这个值能立刻标记每一个类的目的,在你看 HTML 或者样式的时候是很需要的.我使用 ...