前面我们已经将 NameServer 运行起来了,接着就可以来运行 Broker 了。

1.修改启动类配置

找到 Broker 的启动类 BrokerStartup
image.png
老方法进入 Run Configuration

添加 Program arguments

在 Program arguments 里指定配置文件地址:-c 运行目录\conf\broker.conf,如图所示。
image.png

添加 Enviroment variables

添加 ROCKET_HOME,按 NameServer 的方式配置下
image.png
全部配置完,此时 BrokerStartup 启动类就配好了,因为这时候 Broker 启动会收到一个 -c 以及配置文件的参数,而且直到环境变量 ROCKETMQ_HOME,知道运行目录是哪个,然后就会基于这个配置文件启动,同时在这个运行目录中存储数据,包括写入数据。
image.png

2.添加配置文件

找到 distrbution 模块中的 logback-broker.xml 配置文件
image.png
把这个文件拷贝到 ROCKETMQ_HOME/conf 目录中去,也就是 D:\Java\RocketMQ\NameServer\conf 目录
image.png
将该配置文件中所有 ${user.home} 变量替换为运行目录地址
image.png

3.启动 Broker

接着就可以通过 debug 的模式启动 BrokerStartup 启动类了,看到如下提示就表示运行成功了。
image.png
然后去运行目录的 logs 目录中,有一个子目录 rocketmqlogs,其中有一个文件 broker.log
image.png
broker.log 里存放的就是 Broker 的启动日志,输出如下信息就表示启动成功

  1. 2021-10-11 15:06:40 INFO main - Try to start service thread:FileWatchService started:false lastThread:null
  2. 2021-10-11 15:06:40 INFO FileWatchService - FileWatchService service started
  3. 2021-10-11 15:06:40 INFO main - Try to start service thread:PullRequestHoldService started:false lastThread:null
  4. 2021-10-11 15:06:40 INFO PullRequestHoldService - PullRequestHoldService service started
  5. 2021-10-11 15:06:40 INFO main - Try to start service thread:TransactionalMessageCheckService started:false lastThread:null
  6. 2021-10-11 15:06:41 INFO brokerOutApi_thread_1 - register broker[0]to name server 127.0.0.1:9876 OK
  7. 2021-10-11 15:06:41 INFO main - The broker[broker-a, 127.0.0.1:10911] boot success. serializeType=JSON and name server is 127.0.0.1:9876
  8. 2021-10-11 15:06:49 INFO BrokerControllerScheduledThread1 - dispatch behind commit log 0 bytes
  9. 2021-10-11 15:06:49 INFO BrokerControllerScheduledThread1 - Slave fall behind master: 0 bytes

其中有个 ERROR 为找不到 commitlog 目录,无影响,到时候运行下 example 模块中的 Producer 测试类就有目录了。

  1. ERROR DiskCheckScheduledThread1 - Error when measuring disk space usage, file doesn't exist on this path: D:/Java/RocketMQ/NameServer/store/commitlog