`

RocketMQ:Windows下开发环境搭建

 
阅读更多

本文来源网络,记录目的是为了自己以后方便查询

本文章来源:  https://www.jianshu.com/p/b1824c6b96c1

 

 

一、准备工作

运行当前最新版本的RockitMQ(v4.4.0),必须先安装64bit的JDK1.8或以上版本。

从RockitMQ官网 http://rocketmq.apache.org/release_notes/ 下载最新的release包。

解压到本地目录。



 上图是rocketmq-all-4.4.0-bin-release.zip包解压后的目录结构。bin目录下存放可运行的脚本。

 

二、RocketMQ基本结构

在动手开发之前,我们需要了解一下RocketMQ的基本结构。



 如上图所示,一个正常工作的RocketMQ包括四个部分。

  • NameServer :基于高可用设计产生的,用于服务发现和路由。正式应用时通常采用集群部署。
  • Broker:实现队列机制,负责消息存储和转发。正式应用时也采用集群部署。
  • Producer:消息生产者,生成消息并发送到RocketMQ中,生产者通常是我们自己实现的应用程序。
  • Consumer:消息消费者,从RocketMQ中接收消息并进行业务处理。这部分也通常是我们自己实现的。

这里并不打算深入讲解RocketMQ的架构和特性,因为我觉得,针对于初学者,太早地深入知识细节,会让人感到迷惘,学习起来吃力。为了避免浪费时间,以上的知识己经能满足本文后面要实践的内容。随着实践我们会慢慢加深对RocketMQ的理解,再回过头来一点点深入了解。

以上的知识都来源于RocketMQ官网的参考文档,需要更多细节的同学, 可以打开
http://rocketmq.apache.org/docs/quick-start/ 自行阅读。

 

三、Windows环境下启动最小应用

从上面的图可以了解到,RocketMQ自身分为 NameServer 和 Broker 两个部分,因此,用作本机开发调试用的最小应用,应该分别启动一个NameServer和一个Broker节点。

RocketMQ默认提供了 windows环境 和 linux环境 下的启动脚本。脚本位于bin目录下,windows的脚本以.cmd为文件名后缀,linux环境的脚本以.sh为文件名后缀。

 

本篇操作细节部分只专注于讲windows环境下的脚本,linux环境下的脚本请直接参考官网原文。

不过,通常情况下,windows下的脚本双击启动时,都是窗口一闪而过,启动失败。下面的内容就帮大家解决这些问题。

第一步,配置 JAVA_HOME 和 ROCKETMQ_HOME 环境变量

JAVA_HOME 的配置已经是老生常谈,这里不再赘述,不懂的话请自行百度。

ROCKETMQ_HOME 应指向解压后的Readme.md文件所在目录。

如上面的第一张图,我的 ROCKETMQ_HOME 应配置为D:\programs\rocketmq\rocketmq-all-4.4.0-bin-release

第二步,启动 NameServer

NameServer的启动脚本是bin目录下的mqnamesrv.cmd

上文讲过,即使配置好了ROCKETMQ_HOME环境变量,mqnamesrv.cmd的启动通常也以失败告终。

阅读mqnamesrv.cmd脚本,发现其实际上是调用了runserver.cmd脚本来实现启动的动作。

而在runserver.cmd脚本,java的默认启动参数中,启动时堆内存的大小为2g,老旧一点的机器上根本没有这么多空闲内存。

因此,用编辑器修改一下runserver.cmd脚本。将原来的内存参数注释掉(cmd脚本使用rem关键字),修改为:

rem set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx512m"

直接双击mqnamesrv.cmd脚本启动NameServer。



 看到 The Name Server boot success 字样,表示NameServer己启动成功。

windows环境下,可以在目录%USERPROFILE%\logs\rocketmqlogs下找到NameServer的启动日志。文件名为namesrv.log

第三步,启动 Broker

Broker的启动脚本是mqbroker.cmd

mqnamesrv.cmd脚本类似,mqbroker.cmd是调用runbroker.cmd脚本启动Broker的。

同样的,优化一下runbroker.cmd的启动内存

rem set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g"
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx512m"

此外,Broker脚本启动之前要指定 NameServer的地址

NameServer默认启动端口是9876,这点可以从NameServer的启动日志中找到记录。

因此,还需要修改mqbroker.cmd脚本,增加NameServer的地址。

rem 添加此行,指定NameServer的地址
set "NAMESRV_ADDR=localhost:9876"

rem 在此行之前添加NameServer的地址
call "%ROCKETMQ_HOME%\bin\runbroker.cmd" org.apache.rocketmq.broker.BrokerStartup %*

双击mqbroker.cmd脚本启动Broker。



 Broker启动成功

看到 The broker ... boot success 字样,表示Broker己启动成功。

与NameServer类似,可以在目录%USERPROFILE%\logs\rocketmqlogs下找到Broker的启动日志。文件名为broker.log

四、验证RocketMQ功能

RocketMQ自带了恬送与接收消息的脚本tools.cmd,用来验证RocketMQ的功能是否正常。

tool.cmd脚本需要带参数执行,无法用简单的双击方式启动。因此,我们打开一个cmd窗口,并跳转到bin目录下。

 



 

启动消费者

mqbroker.cmd脚本类似,启动tool.cmd命令之前我们要指定NameServer地址。

这里我们采用命令方式指定,并启动消费者。依次执行如下命令:

set NAMESRV_ADDR=localhost:9876
tools.cmd org.apache.rocketmq.example.quickstart.Consumer



 

启动生产者

再打开一个cmd窗口,依次执行如下命令:

set NAMESRV_ADDR=localhost:9876
tools.cmd org.apache.rocketmq.example.quickstart.Producer



 

 

启动成功后,生产者会发送1000个消息,然后自动退出。

 



 

此时,在消费者界面按下Ctrl + C,就会收到刚刚生产者发出的消息。



 

至此,RocketMQ最小应用己经可以正常工作,能满足我们开发环境下调试代码的需求。

附一、RocketMQ管理工具

RocketMQ自带mqadmin.cmd脚本作为管理工具。它可以用来查询、管理、定位问题。这里,我们用它来查看我们刚刚启动的最小应用。

mqadmin具体参数可参考http://rocketmq.apache.org/docs/cli-admin-tool/

在cmd中,执行mqadmin.cmd clusterListmqadmin.cmd clusterList -m



 

可看到当前只有一个Broker节点,入队与出队的消息各为2000(执行了两次生产者测试)。

附二、cmd脚本排障

某些环境下,上述的cmd脚本可能遇到不可预知的错误。

这时,可以将cmd脚本中的第一行@echo off修改为@echo on,重新执行脚本,此时每一句命令的内容都会显示在控制台(类似于linux shell 的 -x 参数),这种方式可以帮我们迅速定位脚本问题。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 118.5 KB
  • 大小: 139.7 KB
  • 大小: 59 KB
  • 大小: 35.5 KB
  • 大小: 49.6 KB
  • 大小: 48.4 KB
  • 大小: 25.8 KB
  • 大小: 132.1 KB
  • 大小: 133.1 KB
  • 大小: 104.8 KB
分享到:
评论

相关推荐

    rocketmq windows版本 安装(单机和集群) 后台服务注册

    在Windows上部署RocketMQ,首先确保Java开发环境已安装,即JDK,并配置好环境变量。推荐使用JDK 8或更高版本。 **三、RocketMQ单机模式安装** 1. 下载RocketMQ的Windows版本,解压到指定目录。 2. 打开命令行,切换...

    rocketmq在windows中的部署

    RocketMQ是阿里巴巴开源的一款分布式消息...掌握这些步骤后,你可以在本地开发环境中快速搭建RocketMQ,进行消息队列相关的开发和测试工作。通过不断的实践和学习,你可以更好地理解和运用RocketMQ,提升你的开发技能。

    【RocketMQ windows小白安装教程】

    通过以上步骤,你已经在Windows环境中搭建了一个简单的RocketMQ实例,并了解了其基本操作。在实际生产环境中,还需要考虑集群部署、高可用性、安全策略等更复杂的配置。继续深入学习RocketMQ的高级特性,如事务消息...

    rocketmq-4.7.1.zip

    本压缩包包含的是RocketMQ在Windows环境下的开发环境搭建所需文件,特别适合Java开发者用于本地开发和学习。 1. ** RocketMQ的基本概念** - **消息队列**: RocketMQ的核心是消息队列,它允许生产者发布消息到主题...

    rocketmq-all-4.9.4-bin-release.zip

    用户可以通过解压该文件,在本地搭建RocketMQ环境,进行开发和测试。安装步骤通常包括配置环境变量、启动NameServer、Broker等服务,然后就可以使用RocketMQ提供的Java SDK或者其他语言的客户端进行消息的发送和消费...

    springCloud-alibaba简介学习讲义.pdf

    学习 Spring Cloud Alibaba 需要使用以下开发环境: * 操作系统:Windows 7/10 * JDK:1.8+ * Maven:3.3+ * IDEA:IntelliJ IDEA 学习目标 学习 Spring Cloud Alibaba 的目标是: * 掌握组件使用以及应用场景 *...

    从无到有搭建中小型互联网公司后台服务架构和运维架构

    - **Spring Boot**:简化新Spring应用的初始搭建以及开发过程的框架,旨在简化Spring应用的配置。 - **Spring MVC**:Spring框架的一个模块,提供了强大的MVC Web应用程序功能。 - **Spring Security OAuth2**:...

    梳理的一些java开发中用上的框架和开发工具,肯定会遗漏,欢迎补充

    Tomcat 是一个免费开源的Servlet容器,被广泛应用于中小型系统和开发环境中。它支持最新的Servlet 和 JSP 规范。 - **Jetty**: 框架。Jetty 是一个轻量级的Java Servlet容器,适合于嵌入式应用以及开发测试环境。 - ...

    seata server1.6.1资源双版本

    下载 Seata Server 1.6.1 的资源包,可以快速搭建分布式事务环境,进行测试和生产部署。在实际使用中,需要了解如何配置Seata Server,包括设置服务器地址、注册中心、存储方式等,并在应用程序中集成Seata的客户端...

    rabbitmq教程

    ##### Windows环境下安装 1. **安装Erlang** - 下载Erlang安装包:`otp_win64_17.3.exe` - 运行安装程序并按照提示完成安装。 2. **安装RabbitMQ** - 下载RabbitMQ安装包。 - 安装完成后,在开始菜单会出现...

Global site tag (gtag.js) - Google Analytics