Java消息中间件TensorFlow

RocketMQ 架构

2019-04-26  本文已影响1人  Lin_Shao

RocketMQ Architecture 译文

概述

Apache RocketMQ是一个低延时、高性能、可靠的分布式消息流平台,它具有兆级容量和灵活扩展性的特点。它包括四个部分:name servers, brokers, producers and consumers。每个部分都能水平扩展以避免单点故障。


image.png

Name Server 集群

Name Servers 提供轻量级的服务发现和路由功能。每个Name Server记录全部的路由信息,提供相应的读写服务,支持快速存储扩展。

Broker 集群

Broker 集群通过TOPIC和QUEUE机制实现消息存储功能。Broker支持Push和Pull两种模式,容错机制(2到3个备份),和短时间内应对成百上千亿消息的强大的削峰填谷功能。另外,Broker还支持灾难恢复,丰富的统计指标等等一系列在传统消息系统中缺乏的可选机制。

Producer 集群

Producer支持分布式部署。分布式的Producers通过多路负载均衡模式向Broker集群发送消息。发送程序支持快速失败和低延时。

Consumer 集群

Consumer同样支持分布式部署,而且支持Push和Pull两种模式。它还支持集群消费和消息广播。同时提供实时消息订阅以满足更多消费需求。

push: Broker向Consumer推送消息,有可能将消费者压垮
pull: Consumer主动向Broker拉取消息

Name Server

Name Server是一个功能完备的服务器,它只要有两个功能:

众所周知,RocketMQ的客户端(Producer/Consumer)在Name Server上查询队列路由信息,但是客户端怎么发现Name Server地址呢?

以下有四种方式:

更多详情请点击这里.

Broker Server

Broker 负责消息的存储、分发、查询以及高可用保证(防丢)等等。
Broker有以下几个重要模块:

image
上一篇 下一篇

猜你喜欢

热点阅读