1.简介
RocketMQ is a distributed messaging and streaming platform with low latency, high performance and reliability, trillion-level capacity and flexible scalability. It is the third generation distributed messaging middleware open sourced by Alibaba in 2012. On November 21, 2016, Alibaba donated RocketMQ to the Apache Software Foundation. Next year, on February 20, the Apache Software Foundation announced Apache RocketMQ as a Top-Level Project.
– quote from Wikipedia
RocketMQ是一个轻量级、高可用、低延时的消息中间件,能实现消息的存储,消息的失败重试,批量消息处理,延时消息处理等特性,在各种消息中间件中表现优异。
2.RocketMQ的组成部分
RocketMQ一共包含四个部分:Name Server,Brokers,Producers,Consumers 。这几个部分都能单独的水平扩展。
-
NameServer Cluster
轻量级的组件,主要用于服务的发现,能够读写路由信息以及全局的信息,支持高速的存储;
-
Broker Cluster
轻量级的Topic与Queue的机制去管理数据的存储,方便实现容错需要2到3个数据分片的提供。客户端可以向Broker推送或者拉取数据,同时也支持灾难恢复和数据统计;
-
Producer Cluster
Producer能够进行分布式部署,推送消息到Brokers能进行均衡的分配,还具有高可用,低延时的特性;
-
Consumer Cluster
Consumer 也可以进行分布式的部署,推送和拉取消息,还能实时的订阅消息,从集群中消费消息,还能实现消息的广播。
3.RocketMQ的部署
服务器配置:
1 |
|
添加Host文件:
1 |
|
这里我们部署的是RocketMQ的3.2.6的版本,最新的版本可以参阅官网的地址。下载地址如下:
1 |
|
解压相关的包:
1 |
|
创建存储路径:
1 |
|
RocketMq配置文件【两台机器】
1 |
|
相关配置文件模板如下:
broker-a.properties:
1 |
|
broker-b.properties:
1 |
|
修改日志配置文件【两台机器】
1 |
|
修改启动NameServer【两台机器】
1 |
|
构建步骤如下:
①Start Name Server
1 |
|
②Start Broker
1 |
|
4.部署RocketMQ Console
将rocketmq-web-console 部署到webapps目录中。
1 |
|
5.Java调用RocketMQ
pom.xml:
1 |
|
Producer:
1 |
|
Consumer:
1 |
|