启动RocketMQ Broke失败抛出NullPointerException

第一次学习rocketmq使用官方的docker命令docker run -it --net=host --mount source=/tmp/store,target=/home/rocketmq/store apache/rocketmq ./mqbroker -n localhost:9876这个命令本身就有问题使用–mount默认是使用volume名但是这里写了路径,需要在前面加上type=bind.直接执行发现启动失败查看日志

java.lang.NullPointerException
2023-12-27T07:42:54.574523199Z 	at org.apache.rocketmq.broker.schedule.ScheduleMessageService.configFilePath(ScheduleMessageService.java:271)
2023-12-27T07:42:54.574540907Z 	at org.apache.rocketmq.common.ConfigManager.persist(ConfigManager.java:82)
2023-12-27T07:42:54.574544338Z 	at org.apache.rocketmq.broker.BrokerController.shutdownBasicService(BrokerController.java:1409)
2023-12-27T07:42:54.574547705Z 	at org.apache.rocketmq.broker.BrokerController.shutdown(BrokerController.java:1484)
2023-12-27T07:42:54.574595409Z 	at org.apache.rocketmq.broker.BrokerStartup.createBrokerController(BrokerStartup.java:242)
2023-12-27T07:42:54.574615630Z 	at org.apache.rocketmq.broker.BrokerStartup.main(BrokerStartup.java:50)

原因是权限不够,完整命令如下docker run -d --net=host --name=rocketmqBroker -v type=bind,source=/home/server/rocketmq,target=/home/rocketmq/store apache/rocketmq ./mqbroker -n localhost:9876,- u 0表示root用户启动启动成功之后日志打印

The broker[VM-4-15-centos, 10.0.4.15:10911] boot success. serializeType=JSON and name server is localhost:9876
  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过逻辑推理来找出谁打碎了玻璃,具体步骤如下: 1. 假设甲说的是真话,那么玻璃可能是丙或者丁打碎的,这时候假设玻璃是丙打碎的,那么乙的话就是假话,而丙和丁的话都是假话,这与题目所给出的前提“他们中有三位决不会说谎话”相矛盾,因此甲的话是假话,玻璃不可能是丙打碎的,只有可能是丁打碎的。 2. 根据乙的话,玻璃是丁打碎的,这时候假设丁说的是真话,那么甲和丙的话都是假话,于是只有乙和丁说的是真话,这与题目所给出的前提“他们中有三位决不会说谎话”相符,因此丁的话是真话,丁是打碎玻璃的人。 所以,可以写出如下的 Python 代码实现逻辑推理: ```python def who_broke_the_glass(): # 假设甲说的是真话,那么玻璃可能是丙或者丁打碎的 if not ((not is_c() and not is_d()) or (is_c() and is_d())): return "丁" # 假设甲说的是假话,那么玻璃只可能是丁打碎的 elif is_d(): return "丁" else: return "无法确定" def is_c(): # 判断丙的话是否为真 return not (is_a() and not is_b() and is_d()) def is_a(): # 判断甲的话是否为真 return not (is_c() or is_d()) def is_b(): # 判断乙的话是否为真 return is_d() def is_d(): # 判断于的话是否为真 return False ``` 在上面的代码中,`who_broke_the_glass` 函数用于判断谁打碎了玻璃,`is_c`、`is_a`、`is_b`、`is_d` 函数则分别用于判断学生们说的话是否为真,它们通过逻辑运算与前提“他们中有三位决不会说谎话”相矛盾的方式来推断出谁打碎了玻璃。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值