美文网首页
rocketMQ4.8.0入门记录(一)

rocketMQ4.8.0入门记录(一)

作者: thepoy | 来源:发表于2021-03-01 17:24 被阅读0次

随便说两句:

rocketMQ是阿里云出品,现在并入了apache,所以在最开始找rocketMQ官方库的时候找了半天也没找到,虽然看见好几次apache/rocketMq,但都被我主动略过了,惭愧。

写这篇记录,一是为了刚了解rocketMQ的人能少走一些弯路,二是为了能让我自己以后少走些弯路。

linux用的是wsl2-ubuntu20.04,环境是docker。

一、创建容器

创建

新手入门,创建一个干净的linux环境最好的方式不外乎docker,所以没有ubuntu镜像的先拉取最新的ubuntu镜像:

docker pull ubuntu:20.04

接下来创建容器,rocketMQ可能用到两个端口98768080,暂时不管这两个端口的作用,先把映射添加上再说:

docker run -itd --name rocketmq -p 8080:8080 -p 9876:9876 ubuntu

配置

一个干净的ubuntu容器因为太干净,啥都没有,在使用时并不方便。

先换阿里云镜像:

sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list

安装可能需要用到的软件:

apt update && apt upgrade -y && apt install -y nano curl openjdk-8-jdk git maven unzip

不要自作聪明安装8+的jdk

配置 github 加速:github全局代理或cdn加速 - 简书 (jianshu.com)

添加raw.githubusercontent.com域名映射:

sudo vim /etc/hosts

添加:

185.199.108.133 raw.githubusercontent.com

可选安装配置vim

apt install vim wget
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
wget https://raw.githubusercontent.com/thep0y/vim/master/.vimrc
vim .vimrc
:PluginInstall

可选安装配置zsh:

参考 linux和macOS安装oh my zsh - 简书 (jianshu.com)

二、下载

既然是阿里云的东西,那阿里云镜像站里肯定有,下面两条命令二选一:

# 编绎好的包
wget https://mirrors.aliyun.com/apache/rocketmq/4.8.0/rocketmq-all-4.8.0-bin-release.zip
# 需要自行编绎的包
wget https://mirrors.aliyun.com/apache/rocketmq/4.8.0/rocketmq-all-4.8.0-source-release.zip

想自行编绎的,参考官方文档:Quick Start - Apache RocketMQ

解压二进制压缩包:

unzip rocketmq-all-4.8.0-bin-release.zip

三、配置

cd rocketmq-all-4.8.0-bin-release

先试一下能不能正常启动nameserverbroker服务器。

sh bin/mqnamesrv
sh bin/mqbroker localhost:9876

只是测试用的,有报错的话复制错误信息的关键部分在Issues · apache/rocketmq-client-go (github.com)里通常都能找到解决办法或找到同病相怜之人 。

上面测试通过后,需要修改runserver.shrunbroker.sh里的内存容量部分,在这两个脚本里都搜索-server -Xms,将其内存分配小点(默认是4G和8G,建议根据比例调整)。

# runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn64m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
# runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

四、rocketMQ控制台

控制台在官方扩展库里:

git clone https://github.com/apache/rocketmq-externals.git

设置maven镜像,不然接下来的编绎会在apache官方源里下载文件,速度以b计。

nano ~/.m2/settings.xml

粘贴:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository/>
  <interactiveMode/>
  <usePluginRegistry/>
  <offline/>
  <pluginGroups/>
  <servers/>
  <mirrors>
    <mirror>
     <id>aliyunmaven</id>
     <mirrorOf>central</mirrorOf>
     <name>阿里云公共仓库</name>
     <url>https://maven.aliyun.com/repository/central</url>
    </mirror>
    <mirror>
      <id>repo1</id>
      <mirrorOf>central</mirrorOf>
      <name>central repo</name>
      <url>http://repo1.maven.org/maven2/</url>
    </mirror>
    <mirror>
     <id>aliyunmaven</id>
     <mirrorOf>apache snapshots</mirrorOf>
     <name>阿里云阿帕奇仓库</name>
     <url>https://maven.aliyun.com/repository/apache-snapshots</url>
    </mirror>
  </mirrors>
  <proxies/>
  <activeProfiles/>
  <profiles>
    <profile>
        <repositories>
           <repository>
                <id>aliyunmaven</id>
                <name>aliyunmaven</name>
                <url>https://maven.aliyun.com/repository/public</url>
                <layout>default</layout>
                <releases>
                        <enabled>true</enabled>
                </releases>
                <snapshots>
                        <enabled>true</enabled>
                </snapshots>
            </repository>
            <repository>
                <id>MavenCentral</id>
                <url>http://repo1.maven.org/maven2/</url>
            </repository>
            <repository>
                <id>aliyunmavenApache</id>
                <url>https://maven.aliyun.com/repository/apache-snapshots</url>
            </repository>
        </repositories>
     </profile>
  </profiles>
</settings>

编绎rocketmq-console

cd rocketmq-externals/rocketmq-console
mvn clean package -DskipTests

编绎成功后的jar文件在子目录target里:

cd target
java -jar rocketmq-console-ng-x.x.x.jar --rocketmq.config.namesrvAddr=127.0.0.1:9876

然后在浏览器地址栏输入网址http://localhost:8080回车,就进入控制台了。

五、测试

rocketMQ给我们提供的默认测试工具在bin目录下,叫tools.sh。我们测试前需要配置这个脚本,为他指定namesrv地址才可以,否则测试发送/消费消息的时候会出现如下错误 connect to null failed

export NAMESRV_ADDR=localhost:9876
cd cd rocketmq-all-4.8.0-bin-release/bin
# 发送消息
./tools.sh org.apache.rocketmq.example.quickstart.Producer
# 消费消息
./tools.sh org.apache.rocketmq.example.quickstart.Consumer

可以在控制台Message-TOPIC-Topic: Topic Test里查看刚刚发送和消费的信息。

相关文章

网友评论

      本文标题:rocketMQ4.8.0入门记录(一)

      本文链接:https://www.haomeiwen.com/subject/pcuafltx.html