zoukankan      html  css  js  c++  java
  • RocketMQ4.5.2在centos7的安装

    说是安装,不如说是配置。不象在windows下的那种。

    首先,到 http://rocketmq.apache.org/ 下载软件(当前版本4.5.2)并解压到 /usr/local 下面。Java也事先解压过(别的软件用到。我并没有将其配置到环境变量里。)。在启动文件里会说明如何用Java的。

    比如解压后的文件夹为 rocketmq452。日志文件和存储文件分别存放到 /var/rocketmqlog 和 /var/rocketmqstore。

    在说明如何配置之前,推荐一个博客 ,分为4篇。首篇链接:https://blog.csdn.net/autfish/article/details/89226461

    (一)基础
    (二)进阶 (重要概念)
    (三)高可用部署
    (四)常见问题

    推荐的博客里 讲的内容,理解了就好。但是我们要配置的是开机自动运行(作为服务)的(systend)脚本。

    namesrv 用于组织协调 broker代理。启动脚本 rocketmqname.service

    [Unit]
    Description=RocketMQ-Nameserver
    After=network.target
    
    [Service]
    Environment=JAVA_HOME=/usr/local/jdk1.8.0_201/
    ExecStart=/usr/local/rocket452/bin/mqnamesrv
    ExecStop=/usr/local/rocket452/bin/mqshutdown namesrv
    
    [Install]
    WantedBy=multi-user.target
    Environment=JAVA_HOME=/usr/local/jdk1.8.0_201/ 的意思是 把 JAVA_HOME=/usr/local/jdk1.8.0_201/ 赋值给 Environment。
    如果不写 Environment= ,是没有用的。

    broker,可以理解为需要向namesrv注册。启动脚本 rocketmqbroker.service

    [Unit]
    Description=RocketMQ-Broker
    After=rocketmqname.service
    
    [Service]
    Environment=JAVA_HOME=/usr/local/jdk1.8.0_201/
    ExecStart=/usr/local/rocket452/bin/mqbroker -c /usr/local/rocket452/conf/broker.conf
    ExecStop=/usr/local/rocket452/bin/mqshutdown broker
    
    [Install]
    WantedBy=multi-user.target

    如果没有指定( 脚本里的参数 -c )配置文件或者配置文件里没有配置store路径,将默认 ~/store。该脚本没有指定运行的用户,所有如果默认的话就会指向 /root/store

    脚本配置后的首次启动,最好清空store里的内容(如果存在的话),否则在初始化时可能过不去。

    conf目录下的那些配置文件都可以改。比如xml文件的日志配置中默认是把日志写到 用户目录中。我是把 ${user.home} 改为 /var里面了。

    有些时间没法博客了。这个虽然用来充数,但是也是耗费时间总结的。 

    顺便说一下,可以到 https://github.com/apache/rocketmq-externals 下载 rocketmq-console 。这个代码有点古老,不要随便升级里面的依赖,否则会运行不下去。

    我把controller注解都改了,结果提示我 org.springframework.web.bind.annotation.* 通配符的错误。

    把包名改短了,也无法运行。需要把 support目录下的2个文件的 注解内容修改下( @ControllerAdvice(basePackages = "rocketmq.console") )。

    rocketmq-console.service

    [Unit]
    Descroption=rocketmq-console8809
    After=syslog.target network.target
    
    [Service]
    Type=simple
    #Type=forking
    
    User=root
    Group=root
    #timeout seconds
    TimeoutSec=0
    #Environment=HOME=/root
    ExecStart=/usr/local/jdk1.8.0_201/bin/java -jar /var/www/rocketmq-console8809.jar
    ExecReload=/bin/kill -s HUP $MAINPID 
    ExecStop=/bin/kill -s QUIT $MAINPID 
    #ExecStop=/usr/bin/kill -15 $MAINPID
    SuccessExitStatus=143
    
    [Install]
    WantedBy=multi-user.target

    上面的代码里,懒得新建服务账号,就直接用root账号。我这是在测试环境里。

  • 相关阅读:
    Linux C 编程内存泄露检測工具(二):memwatch
    远程视频监控之驱动篇(按键)
    MATLAB——scatter的简单应用
    【收藏】十大Webserver漏洞扫描工具
    托付和观察者模式
    wireshark过滤语法总结
    2014年度辛星解读css第四节
    unity3D游戏开发十八之NGUI动画
    谈到本场比赛的项目经理
    jsp的原则执行
  • 原文地址:https://www.cnblogs.com/htsky/p/11645944.html
Copyright © 2011-2022 走看看