关于使用RocketMQ搭建多Master多Slave模式(同步)集群时遇到的问题

这篇具有很好参考价值的文章主要介绍了关于使用RocketMQ搭建多Master多Slave模式(同步)集群时遇到的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

搭建多Master多Slave模式(同步)集群时的java.lang.NullPointerException异常

一、运行环境等基本描述(问题产生原因是权限问题,即权限不够导致无法启动broker,甚至broker线程无法通过jps命令查出。下面阐述分析思路)

1.1)操作系统:Linux

   虚拟机:VMware Workstation 16 Pro 、WSL

   Openjdk Version11.0.19

   使用RocketMQ进行MasterSlave模式(同步)集群的搭建

 2)集群配置:    

    # nameserver
   xxx.xxx.xxx.xxx rocketmq-nameserver1
   xxx.xxx.xxx.xxx rocketmq-nameserver2

    # broker

    VMware Workstation上启动
   xxx.xxx.xxx.xxx:10911 rocketmq-master1--> broker-a.properties
   xxx.xxx.xxx.xxx:11011 rocketmq-slave2 --> broker-b-s.properties

   #WSL上启动

   xxx.xxx.xxx.xxx:10911 rocketmq-master2 --> broker-b.properties
   xxx.xxx.xxx.xxx:11011 rocketmq-slave1 --> broker-a-s.properties

二、问题复现(在VMware Workstation上启动broker-a)

1.1)用户sumuwen并不是root用户,因此没有拥有至高权限

  关于使用RocketMQ搭建多Master多Slave模式(同步)集群时遇到的问题

      输入以上命令后,broker启动过程中抛出异常java.lang.NullPointerException

  关于使用RocketMQ搭建多Master多Slave模式(同步)集群时遇到的问题

三、分析并解决问题

1.1)检查线程ID:使用jps命令检查目前正在运行的线程ID,发现broker并未启动

  关于使用RocketMQ搭建多Master多Slave模式(同步)集群时遇到的问题

 2)检查网络状态:使用netstat -tlnp命令检查网络状态,并未发现端口为10911的进程出现在网络状态中,说明broker并未被真正的启动。这一点也可以在broker.log或者在nohup命令生成的nohup.out文件中查询出来。其实,在这里linux就已经提示你了,因为不是root用户,所以目前用户的权限不足以查询出所有的信息。这一点其实也体现在了使用jps命令时,可能你已经启动了broker,但是jps命令就是查询不出来。这也是我会进行检查线程ID和检查网络状态这两个操作的原因,目的就在确定broker是否已经启动。

  关于使用RocketMQ搭建多Master多Slave模式(同步)集群时遇到的问题

 3)使用sudo进行broker的启动(每次启动一个broker利用上面的方法检查broker是否启动成功是一个非常有效率而且能够定位到启动的错误是什么的好习惯。当然,你也可以选择切换到root用户使用jps命令查询broker是否启动成功)。在此之前,需要注意一件事情,第一次使用sudo命令时需要输入密码,建议在输入密码后再使用sudo命令启动broker

  关于使用RocketMQ搭建多Master多Slave模式(同步)集群时遇到的问题

 注:nohup命令会在执行后在你目前终端所处的文件位置生成一个nohup.out文件,里面记录了一些关于你执行命令的状态信息。在启动broker的过程中除非你设置了环境变量,否则需要时刻注意你的终端中所处的文件位置,因为如果文件位置不对,你也无法在任何文件地点启动broker。启动broker的文件位置一般是rocketmqbin目录下。

 4)切换到root用户,我们发现broker-a被成功启动。这里如果你不是root用户使用jps的话,你是查询不出来broker成功启动的进程ID的。但是你可以使用(在使用非root用户时)命令netstat -tlnp命令,可以发现端口号10911已被使用(只不过无法确定是否是broker-a使用的,这时候去看broker.log以及nohup.out文件进行进一步的判断就十分重要了

  关于使用RocketMQ搭建多Master多Slave模式(同步)集群时遇到的问题

2.1)使用WSL的同志们会发现,不需要sudo,不需要切换root用户,直接使用broker启动命令,然后用jps命令进行线程ID的查询,broker就成功启动了!这是因为WSL的用户,在一开始就是root,即权限最高。因此,上述问题也就不复存在了。

 2)上述仅仅是启动了集群中的broker-a,在VMware Workstation上还要启动broker-b-s,步骤分析基本一样,就不过多赘述了。

 3)以上问题分析流程以及解决方式是启动broker时出现java.lang.NullPointerException异常的一种解决思路的提供。

 4)希望你能以最短的时间解决你的问题。 

 

 文章来源地址https://www.toymoban.com/news/detail-597914.html

 

 

 

 

 

到了这里,关于关于使用RocketMQ搭建多Master多Slave模式(同步)集群时遇到的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用docker搭建RocketMQ(非集群搭建官方镜像)

    之前在使用 RocketMQ 官方的包在搭建的时候,发现好多问题,什么修改内存大小,然后启动 broker 报错,类似 service not available now, maybe disk full 等等… 最后决定还是重新用 docker 搭建下,感觉这样子玩坏了,可以直接把容器干掉,重新启动一个新的容器,毕竟是在学习阶段,这

    2024年02月13日
    浏览(55)
  • 使用kubeadm搭建生产环境的多master节点k8s高可用集群

    环境centos 7.9 目录  1.对安装 k8s 的节点进行初始化配置 2 通过 keepalived+nginx 实现 k8s apiserver 节点高可用 3、kubeadm 初始化 k8s 集群 4.扩容 k8s 控制节点,把 xuegod62 加入到 k8s 集群 5、扩容 k8s 控制节点,把 xuegod64 加入到 k8s 集群 6、扩容 k8s 集群-添加第一个工作节点  7、安装 ku

    2024年02月16日
    浏览(49)
  • RocketMQ双主双从同步集群部署

    🎈 作者: 互联网-小啊宇 🎈 简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护等领域。 🎈 博客首页:CSDN【互联网-小阿宇】 、阿里云

    2024年02月12日
    浏览(41)
  • Kubernetes(K8s)使用 kubeadm 方式搭建多 master 高可用 K8s 集群

    本篇主要针对上篇文章的单 master 节点的 K8s 集群上搭建多 master 节点集群 和 LB 负载均衡服务器。 Kubernetes(K8S)集群搭建基础入门教程 虚拟机 IP 地址: IP 操作系统 主机名称 192.168.2.121 centos7.9 k8s-master01 192.168.2.124 centos7.9 k8s-master02 192.168.2.125 centos7.9 k8s-node01 192.168.2.126 centos

    2023年04月26日
    浏览(52)
  • 【kubernetes篇】教你kubeadm方式搭建kubernetes 集群。单master节点集群,多master节点集群说明。

    kubernetes集群分为单Master节点集群和多Master节点集群。在实际应用中我们一般采用多Master节点集群,实现高可用。 单Master节点集群模型: 多Master节点集群模型 Master节点:2核,4G内存,20G磁盘 Node节点:4核,8G内存,40G磁盘 Master只是作为控制节点,占用资源不高,但是Node节点

    2023年04月09日
    浏览(54)
  • RocketMQ集群的特点以及各种集群模式的介绍

    RockerMQ集群架构: Producer(生产者)需要将消息数据存储到MQ消息队列中,Producer会向NameServer询问我应该将消息数据存储在哪一个Broker中,NameServer会给Producer分配一个Broker,然后由Producer将消息数据存储在指定的Broker中。 每一个Broker都会将自己的信息主动上报到NameServer,由N

    2024年02月11日
    浏览(88)
  • 【RocketMQ】RocketMQ 5.1.0版本Proxy集群模式部署实践

    为了支持长远的云原生发展,RocketMQ引入了一个全新的模块:Proxy,官方对RocketMQ客户端提供了独立的开源项目:https://github.com/apache/rocketmq-clients,如果要使用这个新的客户端,必须要使用Proxy作为endpoint。 Proxy有两种搭建方式: LOCAL:本地模式,顾名思义,通过追加参数,在

    2024年02月01日
    浏览(54)
  • 二进制搭建Kubernetes集群(一)——部署etcd集群和单master

    注意:生产环境中,etcd集群和master、node节点都应该部署在不同的机器上,此处为了实验方便,将三台etcd节点分别部署在了master和node节点上了 k8s集群master01:192.168.126.27    kube-apiserver kube-controller-manager kube-scheduler etcd k8s集群master02:192.168.80.21 k8s集群node01:192.168.80.11    

    2024年02月10日
    浏览(49)
  • 三.RocketMQ单机安装及集群搭建

    1.软硬件要求 Linux64位系统 JDK1.8(64位) 源码安装需要安装Maven 3.2.x 2.下载RocketMQ 下载:rocketMQ下载 1.上传并解压 解压命令:unzip rocketmq-all-4.5.1-bin-release.zip 2.目录介绍 benchmark:一些demo bin:启动脚本,包括shell脚本和CMD脚本 conf:实例配置文件 ,包括broker配置文件、logback配置文件

    2024年02月06日
    浏览(48)
  • SPI协议的verilog实现(spi master slave联合实现)

    spi是serial peripheral interface的缩写,即串行扩展总线。SPI是单主设备通信,总线中只有一个主设备发起通信,能发起通信的设备称为主设备。当SPI主设备想读写从设备时,首先拉低对应从设备的ss线(低电平有效)。然后发送工作麦种到时钟线上,在相应的脉冲时间上,主设备

    2024年02月02日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包