开发者社区 > 云原生 > 云消息队列 > 正文

各位大佬,RocketMq是否有jar启动的方式?试过 需要改代码 要不然依赖包不会打包到启动包里,

各位大佬,RocketMq是否有jar启动的方式?试过 需要改代码 要不然依赖包不会打包到启动包里,专用机不支持命令启动,支持rpm安装,arm架构的服务器,国产麒麟系统

展开
收起
真的很搞笑 2023-06-06 13:48:21 176 0
4 条回答
写回答
取消 提交回答
  • RocketMQ 官方提供了 jar 包启动方式,可以通过以下步骤进行部署和启动:

    下载 RocketMQ 的二进制包,解压缩。 在解压后的目录找到 bin 目录下的 mqnamesrv 和 mqbroker,分别用来启动 namesrv 和 broker。 把需要的依赖打包到启动包里。可以通过以下方式来解决依赖问题:

    使用 Maven 来打包可执行 JAR 文件。Maven 会把所有依赖包打包到 JAR 文件中。 使用类似 shadowJar 的插件,把所有依赖打包到一个 fatjar 中。

    执行下面的命令启动 namesrv:

    nohup sh mqnamesrv &

    执行下面的命令启动 broker。需要替换其中的配置文件路径和 broker 名称:

    nohup sh mqbroker -c /path/to/broker.conf -n localhost:9876 -i instance_name &

    -c 参数指定配置文件路径。 -n 参数指定 namesrv 的地址。如果 namesrv 地址不是本机,需要修改成对应地址。 -i 参数指定 broker 实例名称,用于区分多个 broker 实例。

    等待 broker 启动完成,可以查询 broker 的启动日志。

    注意:启动命令要在 RocketMQ 的 bin 目录下执行,否则可能会出现找不到配置文件或者无法加载依赖的问题。 如果仍然无法启动或者遇到其他问题,可以根据 RocketMQ 官方提供的文档和社区发帖进行详细的排查和解决。

    2023-06-06 17:17:40
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    是的,RocketMQ支持通过jar文件启动Broker和NameServer。您可以按照以下步骤进行操作:

    1. 下载RocketMQ解压缩包,并进入bin目录下。

    2. 使用以下命令启动NameServer:

      nohup sh mqnamesrv &
      

      或者使用以下命令指定配置文件启动NameServer:

      nohup sh mqnamesrv -c /path/to/config/file.properties &
      
    3. 使用以下命令启动Broker:

      nohup sh mqbroker -n localhost:9876 &
      

      或者使用以下命令指定配置文件启动Broker:

      nohup sh mqbroker -c /path/to/config/file.properties &
      

    其中,-n参数指定NameServer的地址,也可以在配置文件中配置;-c参数指定配置文件的路径。

    2023-06-06 16:38:36
    赞同 展开评论 打赏
  • 是的,RocketMQ 支持使用 jar 包启动方式。

    您可以通过 Maven 或者 Gradle 等构建工具,将 RocketMQ 相关的依赖打包成一个可执行的 jar 包,然后使用命令 java -jar 启动该 jar 包即可。

    具体步骤如下:

    1. 在项目的 pom.xml 或者 Gradle 文件中,添加 RocketMQ 的相关依赖。

    例如,使用 Maven 的话,可以在 pom.xml 文件中添加以下依赖:

    <dependency>
        <groupId>org.apache.rocketmq</groupId>
        <artifactId>rocketmq-client</artifactId>
        <version>${rocketmq.version}</version>
    </dependency>
    
    1. 修改项目中的启动类,将 RocketMQ 的启动代码集成到其中。

    例如,您可以编写一个名为 RocketMQApplication 的启动类,该类中包含 RocketMQ 的启动代码,如下所示:

    public class RocketMQApplication {
    
        public static void main(String[] args) {
            DefaultMQProducer producer = new DefaultMQProducer("producer_group");
            producer.setNamesrvAddr("localhost:9876");
            try {
                producer.start();
                producer.send(new Message("test_topic", "test_tag", "Hello, RocketMQ!".getBytes()));
            } catch (Exception ex) {
                ex.printStackTrace();
            } finally {
                producer.shutdown();
            }
        }
    
    }
    
    1. 使用构建工具将项目打包成可执行的 jar 包。

    例如,您可以使用 Maven 执行 mvn package 命令,将项目打包成 jar 包。

    1. 在服务器上使用命令 java -jar 启动 jar 包即可。

    例如,您可以在服务器上执行以下命令,启动 jar 包:

    java -jar rocketmq-demo.jar
    

    如上所述,此方式需要您改变代码以将 RocketMQ 的相关依赖打包成可执行的 jar 包。如果您的专用机不支持命令启动,您可以将 jar 包上传到服务器上,使用 java -jar 命令启动即可。此外,RocketMQ 官方也提供了 rpm 安装包,您可以使用该方式进行安装。

    至于国产麒麟系统和 arm 架构的服务器,RocketMQ 的启动方式跟其他系统和架构没有太大区别。您可以按照上述步骤尝试启动 RocketMQ。

    2023-06-06 14:16:57
    赞同 展开评论 打赏
  • 打成jar包就可以了,此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2023-06-06 13:54:56
    赞同 展开评论 打赏

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关产品

  • 云消息队列 MQ
  • 相关电子书

    更多
    基于 RocketMQ+ Knative 驱动云原生 Ser 立即下载
    基于 RocketMQ + Knative 驱动云原生 Serverless 应用 立即下载
    RocketMQ Operator-K8s平台自动化部署工具 立即下载