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

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

参考文档:

写在最前:

MQ(消息队列)是用于诸如异步实现、异构系统通信等常见的技术方案之一。

在日常技术方案中,从测试工程师的视角出发,主要需要知道以下几点:

  1. MQ本身不具备幂等性。
    在实际业务中,因为网络异常,很容易导致消息重发,又或者可能因为MQ宕机重启后,重复消费等。所以往往基于业务所需,当有写操作时,消费者服务的设计者需要自行保证业务的幂等。
  2. 在分布式服务中,需要考虑MQ消息是否能使事务达成最终一致性;如果MQ宕机或网络等问题导致消息无法被消费,是否需要增加补偿机制。
  3. MQ的日志查看。

关于MQ

MQ即Message Queue的意思。其是异步通信系统,是分布式架构的常用解决方案之一。

在当下主流MQ中,主要包括了 Kafka (这不仅仅是消息中间件),RocketMQ,RabbitMQ等。在Java技术栈领域中,基本都是选用RocketMQ作为消息中间件。

RocketMQ架构

817824-20190327171732809-1230636551.png

RocketMQ 主要包括了: NameServer 、Broker 、Producer 和 Consumer

  • NameServer: 提供轻量级的服务发现和路由。 每个 NameServer 记录完整的路由信息,提供等效的读写服务,并支持快速存储扩展。

  • Broker: 通过提供轻量级的 Topic 和 Queue 机制来处理消息存储,同时支持推(push)和拉(pull)模式以及主从结构的容错机制。

  • Producer:生产者,产生消息的实例,拥有相同 Producer Group 的 Producer 组成一个集群。

  • Consumer:消费者,接收消息进行消费的实例,拥有相同 Consumer Group 的

    Consumer 组成一个集群。

转载于:https://www.cnblogs.com/hailongchen/p/10182358.html

你可能感兴趣的文章
[JS]视频总结-第四部分_JavaScript案例-定时器的使用
查看>>
python学习第一天
查看>>
微信小程序 Canvas
查看>>
cookie的处理
查看>>
Vue 学习笔记
查看>>
delphi常用函数大全(转)
查看>>
compass reset和layout [Sass和compass学习笔记]
查看>>
程序员的快速成长之路
查看>>
oracle创建删除表空间
查看>>
转:/bin/bash^M: bad interpreter: No such file or directory
查看>>
塔形“杨辉三角形”
查看>>
1116 Come on! Let's C (20 分)
查看>>
Access restriction 问题解决
查看>>
修改tomcat默认端口号8080
查看>>
DDN4.9实践 - Source版的安装
查看>>
HDC、CDC、CCLientDC的关系、MFC类库
查看>>
CF704D Captain America 上下界网络流
查看>>
[置顶] 【C#】 Socket通讯客户端程序
查看>>
CentOS6.5安装MySQL5.7
查看>>
WPF MVVM 学习总结(一)
查看>>