四个ruoyi-admin实例启动后都提示SnailJob Token认证失败:
2025-08-31 01:44:09 [snail-job-grpc-client-executor-172.16.0.67-1216] ERROR c.a.s.c.c.handler.ClientRegister
- heartbeat check requestId:[1216] message:[Token authentication failed. [namespace:prod,prod-9900 groupName:ruoyi_group_9900 token:SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT]]
prod,prod-9900,但数据库中的命名空间只有 prod${spring.profiles.active} 作为命名空间,导致9900-9903实例的命名空间变成了 prod-9900, prod-9901 等数据库中的命名空间:
1 Development dev
2 Production prod
客户端尝试连接的命名空间:
将所有实例的命名空间统一为 prod,而不是使用 ${spring.profiles.active}:
修改的文件:
application-prod-9900.ymlapplication-prod-9901.ymlapplication-prod-9902.ymlapplication-prod-9903.yml修改内容:
snail-job:
namespace: "prod" # 从 ${spring.profiles.active} 改为固定值
如果希望保持动态命名空间配置,可以在数据库中创建对应的命名空间:
-- 为每个实例创建对应的命名空间
INSERT INTO `sj_namespace` VALUES (3, 'Production-9900', 'prod-9900', '', 0, now(), now());
INSERT INTO `sj_namespace` VALUES (4, 'Production-9901', 'prod-9901', '', 0, now(), now());
INSERT INTO `sj_namespace` VALUES (5, 'Production-9902', 'prod-9902', '', 0, now(), now());
INSERT INTO `sj_namespace` VALUES (6, 'Production-9903', 'prod-9903', '', 0, now(), now());
-- 为每个命名空间创建对应的组配置
INSERT INTO `sj_group_config` VALUES (13, 'prod-9900', 'ruoyi_group_9900', '', 'SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT', 1, 1, 0, 1, 1, now(), now());
INSERT INTO `sj_group_config` VALUES (14, 'prod-9901', 'ruoyi_group_9901', '', 'SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT', 1, 1, 0, 1, 1, now(), now());
INSERT INTO `sj_group_config` VALUES (15, 'prod-9902', 'ruoyi_group_9902', '', 'SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT', 1, 1, 0, 1, 1, now(), now());
INSERT INTO `sj_group_config` VALUES (16, 'prod-9903', 'ruoyi_group_9903', '', 'SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT', 1, 1, 0, 1, 1, now(), now());
重启应用实例
# 重启所有实例
./hot-start.sh
确认SnailJob客户端成功注册
验证连接
访问SnailJob管理界面
确认所有实例都显示为在线状态
prod),避免动态配置导致的复杂性