Window10安装RocketMQ 及Console UI编译和部署

一、预备环境

系统:Windows
环境:JDK1.8、Maven、Git

二、RocketMQ 基本组成

RocketMQ(https://rocketmq.apache.org/docs/quick-start/)是阿里巴巴团队使用java语言开发的一款分布式消息中间件,是一款低延迟,高可用,拥有海量消息堆积能力和灵活拓展性的消息队列,经受了双11的严峻挑战。

RocketMQ由四大核心模块组成:

  • producer(生产者)
  • consumer(消费者)
  • brokerServer
  • nameServer

其中brokerServer和nameServer是rocketmq的服务端,两者一起独立的对外提供服务;而producer和consumer可看做是rocketmq的客户端,一般依附于业务应用程序。

在这里插入图片描述

2.1 Producer(生产者)

producer负责发送消息。使用producer将消息发送到brokerServer,消费者将从brokerServer中获取消息

RocketMQ支持多种消息发送方式,如同步消息发送、异步回调消息发送、顺序消息发送、延迟消息、单向消息发送(异步无回调)除了单向消息发送,其余的发送方式均需要brokerServer返回发送结果的确认消息。特别的,RocketMQ支持发送事务消息(半消息),能一定程度上解决分布式事务的问题

2.2 Consumer(消费者)

consumer 负责消费producer发送的消息。consumer会从brokerServer获取消息,并传递给应用程序。

RocketMQ使用的消息原语是At Least Once(至少一次成功消费),如果一定时间内没有接收到consumer消息确认消费的响应结果,会将同一条消息再次投递给consumer。RocketMQ采用ack机制保证消息的消费成功,所以consumer可能会多次收到同一条消息,需要consumer的业务方做好幂等防护。

从使用者的角度来看,consumer分为两种方式来获取信息。一种是推模式(push consume),推模式看起来像是brokerServer将消息推给了consumer;另一种是拉模式(pull consume),拉模式看起来像是consumer主动的去brokerServer拉取消息(实际上,推模式是基于拉模式实现的)。

2.3 BrokerServer

BrokerServer负责消息的接收,存储和分发,是rocketmq最核心,最重量级的组成部分
为实现高可用和高吞吐,brokerServer通常采用集群部署,共同对外提供服务
Broker分主节点(master)和从节点(slave),主节点主要是面向生产者一般用于写操作,从节点主要是面向消费者用于读操作
一个主节点可以有多个从节点,Broker是通过name来分组的,每组中又通过id来区分主从的,id为0表示主节点,非0表示从节点

2.4 NameServer

NameServer负责提供路由元数据。例如,brokerServer通常是集群部署的,其拓扑结构会经常的发生变化。如果每次集群中broker机器的上下线都需要通知所有的消费者、生产者,效率太低。

因此,rocketmq引入了nameServer作为brokerServer路由信息的维护者,broker的每次上下线都和nameServer通信,由nameServer来维护broker的路由信息,而producer和consumer通过访问nameServer获得对应broker的访问地址后,再向对应的broker发起请求。

nameServer解除了broker和客户端的耦合依赖关系,大大提高了效率。nameServer同样能以集群形式对外提供服务,集群内的nameServer服务器并不会互相通信,而是保持相互独立
如果将BrokerServer看做是一个微服务,那么NameServer就是注册中心,生产者发送消息需要从NameServer获取一个可用的BrokerServer,然后再往该BrokerServer中发送消息。

三、RocketMQ基本概念模型

3.1 Topic(主题)

Topic表示主题的意思,用于表示一类消息的分类名称或者说是一类消息对应的分类编码,生产者在发送消息时都必须指定一个Topic(分类),消费者通过指定分类来表示要具体消费那种消息。Topic就是消息的分类。

3.2 Tag(标签)

如果说Topic用分类来表示,一般分类可能还会有具体的子类或者称为二级分类,那么Tag就是Topic的二级分类,或者理解为二级Topic。Tag用于对消息再次进行具体细致的分类。

3.3 Message(消息)

message消息是rocketmq中传递消息的主体,一般是个JSON字符串,生产者会将该JSON字符串发送到BrokerServer中,消费者会通过BrokerServer获取该JSON字符串来处理业务逻辑。

3.4 Message Queue(消息队列)

消息队列是消息的家,用来存储消息的地方。每个Topic默认都会分配4个Message Queue用于存储该Topic下的Message。

3.5 Group(组)

组分为 消费者组(consumer group)和 生产者组(producer group)两种。消费者组和生产者组之间没有任何关联(即使组名一样)。只需要为生产者或者消费者定义一个组名即可,组名相同的就是一个集群。

一般一个微服务定义一个生产者组名即可,每个微服务的消费者可以定义自己的消费者组名。

3.6 集群(Clustering)消费/广播(Broadcasting)消费

集群消费和广播消费是消费的两种方式:

集群消费:同一消费者组下的所有消费者共同瓜分消息,一个消息只能被一个消费者消费。

广播消费:同一消费者组下的所有消费者都能消费到每一条消息,人人有份,不用抢,就像村里的大喇叭一样,广播一响所有人都能听得见。

四、RocketMQ下载安装(单机安装)

4.1 下载

官方下载地址: http://rocketmq.apache.org/dowloading/releases/

在这里插入图片描述
点击进入如下页面,点击 HTTP链接进行下载:
在这里插入图片描述

4.2 解压安装

将上面下载的解答到 没有中文、空格 的 目录下:
在这里插入图片描述

4.3 配置环境变量

新增环境变量:
变量名:ROCKETMQ_HOME
变量值:RocketMQ安装目录(笔者这里是D:\rocketmq-4.9.3)
在这里插入图片描述
针对Path环境变量追加路径 %ROCKETMQ_HOME%\bin 如果非window10需要在前面加上分号;

主要目的是是的可以在任意目录下执行启动RocketMQ
在这里插入图片描述

4.4 配置RocketMQ

4.4.1 bin/runserver.cmd配置

修改启动配置文件runserver:(原来【占内存太大】)
set “JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m”
修改成:

set “JAVA_OPT=%JAVA_OPT% -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m”

4.4.2 bin/runbroker.cmd配置

set “JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g”
修改成:
set “JAVA_OPT=%JAVA_OPT% -server -Xms512m -Xmx512m”

4.4.3 conf/broker.conf配置

添加:autoCreateTopicEnable = true
在这里插入图片描述

4.5 启动RocketMQ

在windows下打开命令行 执行 mqnamesrv.cmd 若不配置path路径,则每次启动需要定位到目录 D:\rocketmq-4.9.3\bin下去执行 mqnamesrv.cmd

4.5.1 启动NameServer

打开cmd,输入 命令 mqnamesrv.cmd,回车
在这里插入图片描述

4.5.2 启动broker

在文件夹地址栏输入cmd打开新的控制台,输入

start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true

会新打开一个窗口:
在这里插入图片描述
出现上图所示窗口,标识启动成功啦。

注意:不要关闭 NameServer、Broker 这2个窗口(那个空cmd窗口可关闭),关闭服务就停掉了!

最后需要保留此两个服务打开:
在这里插入图片描述

五、RocketMQ可视化控制台

5.1 下载控制台

下载rocketmq-console(现在的 rocketmq-dashboardhttps://github.com/apache/rocketmq-externals/ ,这是一个Spring Boot Web项目 。

进入https://github.com/apache/rocketmq-externals,下拉找到RocketMQ Dashboard,点击进去下载 客户端:
在这里插入图片描述

5.2 启动控制台

启动rocketmq-dashboard,可以在IDEA中直接启动,也可以先打包成jar,然后再使用 java -jar 启动。启动之前可以修改application.properties中的一些参数。

server.port=8080

注意:如果nameserver有多个有分号;分割而不是逗号

rocketmq.config.namesrvAddr=localhost:9876

在这里插入图片描述

打包方式:

mvn clean package -Dmaven.test.skip=true

运行jar包:

java -jar rocketmq-dashboard-master-0.0.1-SNAPSHOT.jar

控制台界面如下:
在这里插入图片描述

参考文章:
消息队列之–RocketMQ Window10安装及Console UI编译和部署
RocketMQ入门教程(一):简介与安装

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值