前面我们已经将 NameServer 运行起来了,接着就可以来运行 Broker 了。
1.修改启动类配置
找到 Broker 的启动类 BrokerStartup
老方法进入 Run Configuration
添加 Program arguments
在 Program arguments 里指定配置文件地址:-c 运行目录\conf\broker.conf
,如图所示。
添加 Enviroment variables
添加 ROCKET_HOME,按 NameServer 的方式配置下
全部配置完,此时 BrokerStartup 启动类就配好了,因为这时候 Broker 启动会收到一个 -c 以及配置文件的参数,而且直到环境变量 ROCKETMQ_HOME,知道运行目录是哪个,然后就会基于这个配置文件启动,同时在这个运行目录中存储数据,包括写入数据。
2.添加配置文件
找到 distrbution 模块中的 logback-broker.xml 配置文件
把这个文件拷贝到 ROCKETMQ_HOME/conf
目录中去,也就是 D:\Java\RocketMQ\NameServer\conf
目录
将该配置文件中所有 ${user.home} 变量替换为运行目录地址
3.启动 Broker
接着就可以通过 debug 的模式启动 BrokerStartup 启动类了,看到如下提示就表示运行成功了。
然后去运行目录的 logs 目录中,有一个子目录 rocketmqlogs,其中有一个文件 broker.log
broker.log 里存放的就是 Broker 的启动日志,输出如下信息就表示启动成功
2021-10-11 15:06:40 INFO main - Try to start service thread:FileWatchService started:false lastThread:null
2021-10-11 15:06:40 INFO FileWatchService - FileWatchService service started
2021-10-11 15:06:40 INFO main - Try to start service thread:PullRequestHoldService started:false lastThread:null
2021-10-11 15:06:40 INFO PullRequestHoldService - PullRequestHoldService service started
2021-10-11 15:06:40 INFO main - Try to start service thread:TransactionalMessageCheckService started:false lastThread:null
2021-10-11 15:06:41 INFO brokerOutApi_thread_1 - register broker[0]to name server 127.0.0.1:9876 OK
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
2021-10-11 15:06:49 INFO BrokerControllerScheduledThread1 - dispatch behind commit log 0 bytes
2021-10-11 15:06:49 INFO BrokerControllerScheduledThread1 - Slave fall behind master: 0 bytes
其中有个 ERROR 为找不到 commitlog 目录,无影响,到时候运行下 example 模块中的 Producer 测试类就有目录了。
ERROR DiskCheckScheduledThread1 - Error when measuring disk space usage, file doesn't exist on this path: D:/Java/RocketMQ/NameServer/store/commitlog