1、RocketMQ源码分析(一)

素颜马尾好姑娘i 2024-02-17 13:18 173阅读 0赞

RocketMQ简单介绍

RabbitMQ的底层是使用erlang语言编写的,不便分析其底层,RocketMQ作为原阿里下经历阿里双十一严格考验的中间件,同时也是使用我们熟悉的java语言编写,我们先把入门的基础必备了解透,然后在去分析源码,看看大佬是如何编写代码的。
在这里插入图片描述

下载和安装

通过RocketMQ的官网http://rocketmq.apache.org 直接将源码和运行包下载下来,目前最高版本为5.x版,5.x还在不断变化过程,同时是一个拥抱云原生的版本,更新非常多的新特性,目前使用公司以及稳定性来说都还不够,我们来分析4.9.5版本。

5.x版基本上接近于之前的阿里云推出的付费版本。
在这里插入图片描述
下载完之后的目录结构,RocketMQ的运行默认需要12G,但是我们去修改runserver.sh和runbroker.sh 的配置,这些都是java的jvm参数。

  1. JAVA_OPT="${
  2. JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -
  3. XX:MaxMetaspaceSize=320m"
  4. JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g"

同时记得由于RocketMQ是java编写,所以我们需要安装jdk。
RocketMQ的后端服务分为nameserver和broker两个服务

01启动nameserver

在这里插入图片描述
进入目录执行 nohup bin/mqnamesrv &,执行完后生成nohup.out日志文件,当出现success表示启动成功。

02启动broker
在这里插入图片描述
启动之前需要去broker.conf文件里面配置一个 autoCreateTopicEnable=true 参数,该参数表示允许broker端自动创建新的Topic,如果虚拟机存在多张网卡需要配置brokerP1属性。

进入目录执行 nohup bin/mqbroker & ,执行完后生成nohup.out日志文件,当出现success表示启动成功。

03停止服务

通过 mqshutdown namesrv | broker 去关闭对应的服务,不要强制使用kill 命令。
安装服务之后,我们还需要一个可视化界面,这个需要单独下载一个应用,然后通过jar启动才能访问到。

认识RocketMQ的各个组件
在这里插入图片描述

  1. nameServer:该服务不依赖于任何其他的服务,自己独立就能启动,
  2. 不管是broker还是客户端,都需要明确指定nameServer的服务地址,nameServer可以理解为是整个RocketMQCPU
  3. 整个RocketMQ集群都要在CPU的协调下才能正常⼯作。
  4. broker:作为RocketMQ中最重要的,最繁琐的部分,提供消息存储,
  5. 传递,查询等功能,RockerMQ提供很多方式方法来保证broker的安全,
  6. 类似于电脑里面的硬盘或显卡之类的。
  7. clientClient包括消息⽣产者和消息消费者,
  8. 简单理解就是生产消息和消费消息的。

发表评论

表情:
评论列表 (有 0 条评论,173人围观)

还没有评论,来说两句吧...

相关阅读