1 虚拟机参数不生效
hippo4j的docker启动脚本位于 docker/docker-startup.sh 。从下图可以看到 JAVA_OPT放在了jar包名 hippo4j-server.jar之后,而只有项目参数才放在jar包名之后。
 
 实际上这里JAVA_OPT中包含虚拟机参数,而虚拟机参数要放在jar包名之前才会生效,所以此时的虚拟机参数是不生效的。上面的echo "$JAVA ${JAVA_OPT}" > ${BASE_DIR}/logs/start.out 2>&1 &语句将 JAVA_OPT重定向输出到了${BASE_DIR}/logs/start.out文件中,让我们去看看这个 JAVA_OPT到底是些啥。

从上面的截图看出JAVA_OPT有 Xloggc参数,作者想打印gc日志并开启日志轮转,本人用ls 命令查看结果显示确实没有GC日志。
2 不同项目的同名线程池注册失败
hippo4j的官方文档说,线程池管理是分租户 项目 线程池这三级的,实际上当你注册线程池时,不能和现有的任何线程池名字相同(即使是不同租户、不同项目)。
 cn.hippo4j.config.service.biz.impl.ConfigServiceImpl#addConfigInfo方法就做了这种奇怪的判断逻辑
 
 上面的tpId是线程池名字,上边的查询条件并没有加租户id 项目id这两个条件。不同项目中有相同的线程池名词,这个应该是是常见现象,不知道为啥这里直接抛出异常报错。