Coleção RocketMQ: Baixe e instale o RocketMQ no ambiente Linux | Nome do errorvStartup| rocketmq-store| rocketmq-broker |OutOfMemory

prefácio

Acredito que muitos amigos foram torturados por vários relatórios de erro ao ler este artigo. Este artigo irá ajudá-lo com essas armadilhas!

Este artigo usa Rocket5.0 , Maven3.8 , Jdk1.8 como exemplos

O ambiente de instalação exigido pelo RocketMQ 

1) JDK1.8+= , se for inferior a 1.8, haverá um aviso sobre a versão inferior do JDK (através do comando java -version version)

2) Maven3.2+=  ( verifique a versão pelo comando mvn -v )

3) Sistema operacional Linux de 64 bits ( visualize através de uname-a ou uname -r ou cat /proc/version , etc.)

4) Fortemente recomendado: recomenda-se que o caminho de instalação seja um caminho sem espaços , como /usr/src ou /opt/local, etc.

Este ambiente de instalação é muito importante, caso contrário, você pisará em alguns buracos desnecessários! !

1. Solução de relatórios de erros

Como o site oficial possui as etapas de instalação do RocketMQ , este artigo foca nas soluções para vários relatórios de erros , com etapas detalhadas para download e instalação!

Lembrete: Se você não se importa com esses erros , pode pular diretamente e ir para as etapas de instalação! 

1.1  Erro [ERROR] mvn <args> -rf :rocketmq-store/broker , etc. ao compilar

O comando de compilação oficial dado é:

mvn -Prelease-all -DskipTests clean install -U  #Sempre relatar erros do rocketmq-store ou do rocketmq-broker

Adicione o parâmetro -Dcheckstyle.skip para ignorar a verificação no comando :
mvn -Prelease-all -DskipTests -Dcheckstyle.skip clean install -U 

Lembrete: este erro não é causado pela versão do jdk ou da versão do maven . O motivo específico é desconhecido no momento. Para solucionar esse erro, clique para ver os detalhes

1.2 Erro: Não foi possível localizar ou carregar a classe principal org.apache.rocketmq.namesrv.NamesrvStartup ao iniciar mqnamesrv

O motivo do erro: a posição onde você executa o comando rocketmq está errada, a versão rocketmq5.0 é usada como exemplo

Caminho de descompactação /usr/src/rocketmq-all-5.0.0-source-release 

caminho de execução do comando, deve ser

/usr/src/rocketmq-all-5.0.0-source-release/distribution/target/rocketmq-5.0.0/rocketmq-5.0.0/

E o caminho de erro do seu comando de execução atual pode ser

/usr/src/rocketmq-all-5.0.0-source-release

ou /usr/src/rocketmq-all-5.0.0-source-release/distribution

Nota: Depois de executar o script de acordo com este esquema, este erro ainda é relatado. É altamente recomendável que o comando rm -rf limpe completamente o diretório de descompactação, descompacte-o novamente e recompile-o! 

Erro 3: Um monte de dicas sobre memória ou OutOfMemory, erro = 'Não é possível alocar memória' (errno = 12)

Motivo do erro: A configuração padrão no pacote de instalação precisa consumir muita memória. Geralmente rodamos em uma máquina virtual local, então precisamos modificar manualmente esses poucos arquivos sobre configuração de memória!

runserver.sh, runbroker.sh, ferramentas.sh

Onde estão localizados esses arquivos:

cd /usr/src/rocketmq-all-5.0.0-source-release/distribution/target/rocketmq-5.0.0/rocketmq-5.0.0/bin 

Nota: O processo de modificação específico é descrito em detalhes em   2.5 das etapas de instalação a seguir (para evitar que o artigo fique muito pesado)!


lembrete especial:

Se os três erros acima forem tratados de acordo com a solução fornecida neste artigo, o erro ainda será relatado. É altamente recomendável excluir o diretório de descompactação, descompactá-lo novamente e reconfigurar! !

Comando de exclusão em cascata: rm -rf /usr/src/rocketmq-all-5.0.0-source-release/


¥¥ Evite esses três buracos e você pode basicamente instalar e executar a versão autônoma do RocketMQ sem problemas. As etapas de instalação e configuração são apresentadas em detalhes abaixo. ¥¥


2. Baixe e instale as etapas

2.1 Entre no site oficial e baixe o pacote de instalação do RocketMQ5.0

Download da versão histórica, clique para entrar

 Como mostrado na figura acima, clique aqui para entrar na interface de download

Conforme mostra a figura acima, após clicar no link de download , entrará automaticamente no download.
Endereço de download: https://dlcdn.apache.org/rocketmq/5.0.0/rocketmq-all-5.0.0-source-release.zip

2.2 Carregar o diretório especificado do ambiente Linux

dicas amáveis:

Primeiro, use o comando cd para alternar para o local de armazenamento do pacote de instalação do software, como mypacket no diretório raiz para gerenciamento unificado

2.2.1) Se você estiver usando o xshell, conforme mostrado abaixo

 2.2.2) Se você estiver usando o FinalShell, conforme mostrado abaixo

2.3 Descompacte no diretório especificado e compile

Veja a descompactação e compilação de documentos oficiais

De acordo com o prompt oficial, o comando otimizado é o seguinte: 

cd # mude para o diretório raiz

cd mypackage # Mude para o diretório de upload do pacote de instalação

descompacte rocketmq-all-5.0.0-source-release.zip -d /usr/src # Descompacte para o local especificado
cd rocketmq-all-5.0.0-source-release # Mude para o diretório de descompactação
mvn -Prelease-all - DskipTests   - Dcheckstyle.skip clean install -U #A execução deste comando requer que o maven seja previamente configurado. Após a execução do comando, a pasta de destino será gerada automaticamente no diretório atual (a execução deste comando levará pelo menos 5 minutos, aguarde pacientemente)
$ cd Distribution/target/rocketmq-5.0.0/rocketmq-5.0.0 #Após a compilação bem-sucedida do mvn, você pode ver o diretório 

dicas amáveis:

1) Ao compilar com o comando mvn, você precisa instalar e configurar a variável de ambiente JAVA e a variável de ambiente Maven com antecedência , caso contrário, o comando mvn não pode ser usado.

2) O comando oficial de compilação mvn pode relatar um erro, e  o parâmetro -Dcheckstyle.skip precisa ser adicionado nesta base para ignorar a verificação.

A interface que você vê após a compilação bem-sucedida:

Interface de sucesso de compilação do CentOS6.5

Interface de sucesso da compilação do CentOS7.9

  

 Conforme mostrado na figura abaixo, após a compilação ser bem-sucedida, você pode ver o diretório de destino no diretório de distribuição

2.4 Configurando as variáveis ​​de ambiente do RocketMQ

Copie o caminho pwd na figura (o /bin no final do caminho é opcional)

vim /etc/profile

export ROCKETMQ_HOME= /usr/src/rocketmq-all-5.0.0-source-release/distribution /target/rocketmq-5.0.0/rocketmq-5.0.0
export PATH=$PATH:$ROCKETMQ_HOME/bin

Observação:  ROCKETMQ_HOME é o diretório descompactado + compilado, não o diretório raiz descompactado! !

source /etc/profile # 使配置文件重新生效

2.5 Entre no diretório deep bin compilado e modifique runserver.sh e runbroker.sh respectivamente

Aviso: Modifique estas configurações, pois caso não as modifique, será reportado um erro de memória, e será difícil iniciar o RocketMQ normalmente, o erro é mostrado na figura abaixo.

 Vamos modificar essas configurações juntos!

cd /usr/src/rocketmq-all-5.0.0-source-release/ && ls
cd distribution/target/rocketmq-5.0.0/rocketmq-5.0.0/ && ls
cd bin && ls

dicas amáveis:

O teste da máquina virtual local precisa ser modificado (caso contrário, pode aparecer uma mensagem de erro Out of Memory Error ), se for um ambiente de produção, não apenas não ajuste o tamanho para baixo, mas também precisa aumentar o tamanho de acordo com a demanda ! ! !

2.5.1 ) Modifique o uso de memória de runserver.sh

Dica: Pressione Esc, o foco é bloqueado na linha a ser editada, pressione 1yy para copiar uma linha, pressione p para colar e pressione i para entrar na edição.

vim runserver.sh

 #JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

2.5.2 ) Modifique o uso de memória de runbroker.sh

vim runbroker.sh

#JAVA_OPT="${JAVA_OPT} -servidor -Xms8g -Xmx8g"
JAVA_OPT="${JAVA_OPT} -servidor -Xms256m -Xmx256m"

Modifique esta parte primeiro, conforme mostrado na figura abaixo, se você continuar relatando problemas de estouro de memória, continue a modificar

 #JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=15g"
JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=1g"

 

2.5.3 ) Modifique o uso de memória de tools.sh ( Entenda, não modificado ainda )

Observação: se você modificar os dois primeiros, nenhuma exceção de estouro de memória será relatada e não será necessário modificar o uso de memória em tools.sh.

vim tools.sh

 JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"

Nota: O acima é o parâmetro de memória padrão 1g , que pode ser ajustado para 256m  conforme necessário

3. Inicie e feche o serviço RocketMQ

Perceber:

O comando de inicialização usa o comando sh no diretório bin compilado, não o comando /distribution/bin sh descompactado.

/usr/src/rocketmq-all-5.0.0-source-release/ Distribution/target /rocketmq-5.0.0/rocketmq-5.0.0/ bin

3.1  iniciar NameServer

3.1.1) Método 1: Iniciar o serviço em primeiro plano

jps #查看已启动的java服务
cd /usr/src/rocketmq-all-5.0.0-source-release/distribution/target/rocketmq-5.0.0/rocketmq-5.0.0/ && ls
sh bin/mqnamesrv # 前台运行,便于查看报错

CentOS6.5 inicia interface com sucesso 

CentOS7.9 inicia a interface com sucesso

Depois que a inicialização for bem-sucedida, você pode tentar Ctrl+c para interromper o serviço e, em seguida, iniciá-lo em segundo plano

3.1.2) Método 2: Iniciar o serviço em segundo plano

nohup sh bin/mqnamesrv &  #官网提供的启动方式

3.1.3) Verifique o log de inicialização do NameServer

tail -f ~/logs/rocketmqlogs/namesrv.log

conectar host remoto[192.168.31.128:9876] com sucesso, AbstractBootstrap$PendingRegistrationPromise@73e937cf(success) 

3.2  Corretora Inicial 

1) Inicie o corretor em segundo plano

sh bin/mqbroker -n localhost:9876 autoCreateTopicEnable=true &

2) Veja o log de inicialização do corretor

tail -f ~/logs/rocketmqlogs/broker.log

 Se a inicialização for bem-sucedida, o log conterá os seguintes logs:

O corretor [%s, 192.168.31.128:10911] inicializou com sucesso...

3.3 Teste de envio/recebimento de mensagens

3.3.1) Usar tools.sh para enviar mensagens

export NAMESRV_ADDR=localhost:9876 #NAMESRV_ADDR环境变量配置
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

Você verá muitos: SendResult [sendStatus=SEND_OK, msgId= ... 

As figuras a seguir são os resultados da execução do CentOS6.5 e do CentOS7.9, respectivamente 

 3.3.2) Usar tools.sh para receber mensagens

sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

Você verá muitos: ConsumeMessageThread_%d Receber novas mensagens: [MessageExt...

Se o log acima puder ser impresso corretamente, isso significa que a implantação do RocketMQ com um clique foi bem-sucedida!

3.4 O aplicativo Java acessa o servidor RocketMQ e a porta 9876 do firewall precisa ser aberta

firewall-cmd --zone=public --add-port=9876/tcp --permanent #Abrir porta 9876
firewall-cmd --reload #Reiniciar firewall
firewall-cmd --zone=public --list-ports #Ver porta aberta 

3.5 Fechar NameServer e Broker 

Encerre o broker e o namesrv por meio do comando sh bin/mqshutdown, respectivamente

> sh bin/mqshutdown broker
O mqbroker(36695) está em execução...
Envie a solicitação de desligamento para mqbroker(36695) OK

> sh bin/mqshutdown namesrv
O mqnamesrv(36664) está em execução...
Envie a solicitação de desligamento para mqnamesrv(36664) OK

4. Expansão

Comandos Comuns do RocketMQ

Visualize o status do cluster./bin//mqadmin clusterList -n 127.0.0.1:9876
Visualize o status do broker./bin/mqadmin brokerStatus -n 127.0.0.1:9876 -b 172.20.1.138:10911
Visualize a lista de tópicos./bin/mqadmin topicList - n 127.0.0.1:9876
Exibir status do tópico./bin/mqadmin topicStatus -n 127.0.0.1:9876 -t MyTopic (mude para o tópico que deseja consultar)
Exibir roteamento do tópico./bin/mqadmin topicRoute -n 127.0.0.1: 9876 - t MyTopic

Resumir

Este artigo apresenta principalmente a instalação e configuração do RocketMQ5.0, concentra-se nos erros encontrados durante o processo de instalação e suas soluções e fornece alguma referência ou inspiração para os retardatários.

Resumindo, se o serviço ainda não puder ser iniciado normalmente de acordo com as etapas acima, exclua-o completamente com rm -rf , descompacte-o, compile-o e configure-o novamente.

Epílogo

Cada link neste artigo foi testado repetidamente e testes pessoais estão disponíveis. No entanto, o RocketMQ é um grande ponto de conhecimento e algumas soluções anormais podem não ser cobertas. Se encontradas posteriormente, serão atualizadas uma após a outra.

Se você acha que não é ruim, seja bem-vindo para curtir e coletar ou deixar uma mensagem!

notas

1. Erro de compilação do RocketMQ: mvn -Prelease-all -DskipTests clean install -U | mvn <goals> -rf :rocketmq-store|broker 

Acho que você gosta

Origin blog.csdn.net/xp871038951/article/details/127594948
Recomendado
Clasificación