博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
消息中间件 MQ
阅读量:2421 次
发布时间:2019-05-10

本文共 1356 字,大约阅读时间需要 4 分钟。

目录

 

MQ概述

MQ,全称MessageQueue 消息队列,专门用作消息队列的中间组件叫做消息中间件,主要是用于应用之间通信。消费者、生产者可以使用不同语言编写。

 

使用场景|作用

  • 模块之间的解耦。各模块通过消息中间件这个统一的接口来交换数据,无需耦合在一起,使各模块具有良好的扩展性。
  • 流量削峰:常用于秒杀、日志处理。
  • 可以实现异步操作,多操作并行

在这里插入图片描述

其它的场景比如存储bus总线的数据,数据变动通知对应服务。
 

MQ一般都有冗余机制,拥有多个数据备份,保证部分节点故障时,消息不会丢失。

 

java消息服务 JMS

JMS: 全称Java Message Service java消息服务,是sun公司早期推出的java消息标准,旨在为java应用提供统一的消息操作,包括create、send、receive。

JMS是java中的消息中间件接口,定义了java中标准消息传递的API,类似于JDBC,sun只规定标准、规范,由各MQ厂商提供具体实现。

 

JMS中的常见概念

  • 消息message:数据对象
  • 队列queue:存储待消费消息的区域
  • 主题topic:一种支持发送消息给多个订阅者的机制
     

JMS的两种消息类型|发送模式

  • 点对点 Point-to-Point(P2P):消息只会被一个消费者消费。多个消费者可以订阅同一个topic,对于这个topic的一则消息,只有其中一个消费者消费。
  • 发布/订阅 Publish/Subscribe:消息可以被多个消费者消费。多个消费者都订阅同一个topic,对于这个topic的一则消息,订阅了此topic的消费者都会消费。

 

常见的消息中间件

1、ActiveMQ

  • 老牌消息中间件;
  • 吞吐量不高,多队列的时候性能下降,存在消息丢失的情况;
  • 很少大规模使用。
     

2、Kafka

  • 开源的流处理平台,由Scala和Java编写;
  • Kafka是一个高吞吐量的分布式发布/订阅消息系统,是一个流处理平台,严格意义上不属于MQ,只是支持常规的MQ功能;
  • Kafka并不是JMS规范的实现,只是提供了类似于JMS的特性;
  • 高吞吐量、高性能,支持消息持久化到硬盘,使用副本集机制实现数据冗余,保障数据尽可能不丢失;
  • 不支持事务,失败回滚不了,保证不了数据一致性

Kafka适合需要收集、处理大量数据,但对数据安全、一致性要求不高的项目,在大数据开发中用得多。

Kafka常用于处理大规模网站中的流数据,比如

  • 收集日志
  • 记录实时数据,监控运行状况
  • 记录用户访问行踪,比如用户访问的页面、点击的条目、浏览时长、搜索的关键词,发送给订阅者来分析、挖掘用户偏好、消费能力

 

3、RocketMQ

  • 阿里开源的消息中间件,纯java编写;
  • 具有高吞吐量、高可用、高可靠性,支持事务,性能强劲(零拷贝技术),支持海量消息堆积, 支持指定次数和时间间隔的失败消息重发,支持consumer端tag过滤、延迟消息等;
  • 适合大规模分布式系统应用,适合电商、互联网金融等领域;
  • 偏向国内、阿里,社区相对不活跃

 

4、RabbitMQ

  • 基于AMQP协议,使用Erlang编写,RabbitMQ是AMQP的一个实现,但AMQP并非只有RabbitMQ一个实现;
  • 各方面的折中,可靠、稳定,性能、吞吐量都不错,支持事务。

转载地址:http://wzhlb.baihongyu.com/

你可能感兴趣的文章
打造金融科技银行,招行的底气源自……
查看>>
火爆全网的动态曲线图是怎么做的?
查看>>
程序员感叹一年只能存下15万太少了……网友:潸然泪下
查看>>
文科出身敲出 Instagram,被小札“挤”走,建新冠追踪网站,这个程序员有点牛!...
查看>>
面对 Python,Java 中枪了 | 每日趣闻
查看>>
地方普通院校的计算机专业「科班」学生如何突围而出?| 原力计划
查看>>
小白也能看懂的 Java 异常处理
查看>>
C++ 是如何从代码到游戏的?
查看>>
程序员惊魂 12 小时:“���”引发线上事故
查看>>
调查了 10,975 位 Go 语言开发者,我们有了这些发现!
查看>>
面试官吐槽:“Python程序员就是不行!”网友:我能把你面哭!
查看>>
太真实!深刻解读论文里的话术| 每日趣闻
查看>>
拿来就能用!Python 每天定时发送一句情话 | 原力计划
查看>>
Java“拍了拍”你,面试其实没那么难...
查看>>
帅爆了!3个月0基础转型头条数据分析师,他做对了什么?
查看>>
程序员:我受够了!不想再在小厂里干Java了!
查看>>
厉害!国内大学生计算机编程第一人,一人挑战一个队,百度最年轻 T10,现创业自动驾驶...
查看>>
研发团队来了高颜值的妹子,这结局万万没想到 | 每日趣闻
查看>>
太难了!开源项目如何商业化?
查看>>
谷歌排名第一的编程语言,死磕它这两点,小白也能学的会!不信你看!
查看>>