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

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

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

展开
收起
真的很搞笑 2023-06-06 13:48:21 120 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
    赞同 展开评论 打赏

多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖多行业。

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

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