消息中间件之 RocketMQ

Posted hailongchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了消息中间件之 RocketMQ相关的知识,希望对你有一定的参考价值。

参考文档:
http://jm.taobao.org/2017/01/12/rocketmq-quick-start-in-10-minutes/
http://rocketmq.apache.org/docs/quick-start/
https://www.jianshu.com/p/824066d70da8
https://www.jianshu.com/p/453c6e7ff81c
https://www.infoq.cn/article/l*fg5StAPoKiQULat0SH

写在最前:

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

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

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

关于MQ

MQ即Message Queue的意思。其是异步通信系统,是分布式架构的常用解决方案之一。
在当下主流MQ中,主要包括了 Kafka (这不仅仅是消息中间件),RocketMQ,RabbitMQ等。在Java技术栈领域中,基本都是选用RocketMQ作为消息中间件。

RocketMQ架构

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

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

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

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

  • Consumer:消费者,接收消息进行消费的实例,拥有相同 Consumer Group 的
    Consumer 组成一个集群。









以上是关于消息中间件之 RocketMQ的主要内容,如果未能解决你的问题,请参考以下文章

消息队列之 RocketMQ

SpringCloud - Spring Cloud 之 Stream构建消息驱动微服务框架;Spring Cloud Alibaba集成RocketMQ(二十四)

初识中间件之消息队列

干货消息中间件—RocketMQ消息消费

消息中间件 - RocketMQ 详解(从软件安装到案例实现)

消息中间件 - RocketMQ 详解(从软件安装到案例实现)