feat: 暂时禁用 BSC 链,添加 Kafka 企业级重试配置
- blockchain-service: getSupportedChains() 只返回 KAVA - 所有 Kafka consumer 添加企业级重试配置(15次重试,指数退避) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
286e6aad01
commit
c1fe54a8d4
|
|
@ -98,9 +98,13 @@ export class ChainConfigService {
|
|||
|
||||
/**
|
||||
* 获取所有支持的链
|
||||
*
|
||||
* 注意:暂时只支持 KAVA 链,BSC 链暂未启用
|
||||
*/
|
||||
getSupportedChains(): ChainTypeEnum[] {
|
||||
return Array.from(this.configs.keys());
|
||||
// TODO: BSC 链暂时禁用,未来需要时可以恢复
|
||||
// return Array.from(this.configs.keys());
|
||||
return [ChainTypeEnum.KAVA];
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -48,13 +48,17 @@ export class DepositAckConsumerService implements OnModuleInit, OnModuleDestroy
|
|||
this.logger.log(`[INIT] Brokers: ${brokers}`);
|
||||
this.logger.log(`[INIT] Topics: ${Object.values(ACK_TOPICS).join(', ')}`);
|
||||
|
||||
// 企业级重试配置:指数退避,最多重试约 2.5 小时
|
||||
this.kafka = new Kafka({
|
||||
clientId,
|
||||
brokers,
|
||||
logLevel: logLevel.WARN,
|
||||
retry: {
|
||||
initialRetryTime: 100,
|
||||
retries: 8,
|
||||
initialRetryTime: 1000, // 1 秒
|
||||
maxRetryTime: 300000, // 最大 5 分钟
|
||||
retries: 15, // 最多 15 次
|
||||
multiplier: 2, // 指数退避因子
|
||||
restartOnFailure: async () => true,
|
||||
},
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -91,13 +91,17 @@ export class MpcEventConsumerService implements OnModuleInit, OnModuleDestroy {
|
|||
this.logger.log(`[INIT] Brokers: ${brokers.join(', ')}`);
|
||||
this.logger.log(`[INIT] Topics to subscribe: ${Object.values(MPC_TOPICS).join(', ')}`);
|
||||
|
||||
// 企业级重试配置:指数退避,最多重试约 2.5 小时
|
||||
this.kafka = new Kafka({
|
||||
clientId,
|
||||
brokers,
|
||||
logLevel: logLevel.WARN,
|
||||
retry: {
|
||||
initialRetryTime: 100,
|
||||
retries: 8,
|
||||
initialRetryTime: 1000, // 1 秒
|
||||
maxRetryTime: 300000, // 最大 5 分钟
|
||||
retries: 15, // 最多 15 次
|
||||
multiplier: 2, // 指数退避因子
|
||||
restartOnFailure: async () => true,
|
||||
},
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -50,13 +50,17 @@ export class WithdrawalEventConsumerService implements OnModuleInit, OnModuleDes
|
|||
this.logger.log(`[INIT] Brokers: ${brokers.join(', ')}`);
|
||||
this.logger.log(`[INIT] Topics: ${Object.values(WITHDRAWAL_TOPICS).join(', ')}`);
|
||||
|
||||
// 企业级重试配置:指数退避,最多重试约 2.5 小时
|
||||
this.kafka = new Kafka({
|
||||
clientId,
|
||||
brokers,
|
||||
logLevel: logLevel.WARN,
|
||||
retry: {
|
||||
initialRetryTime: 100,
|
||||
retries: 8,
|
||||
initialRetryTime: 1000, // 1 秒
|
||||
maxRetryTime: 300000, // 最大 5 分钟
|
||||
retries: 15, // 最多 15 次
|
||||
multiplier: 2, // 指数退避因子
|
||||
restartOnFailure: async () => true,
|
||||
},
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -51,13 +51,17 @@ export class BlockchainEventConsumerService implements OnModuleInit, OnModuleDes
|
|||
this.logger.log(`[INIT] Brokers: ${brokers.join(', ')}`);
|
||||
this.logger.log(`[INIT] Topics to subscribe: ${Object.values(BLOCKCHAIN_TOPICS).join(', ')}`);
|
||||
|
||||
// 企业级重试配置:指数退避,最多重试约 2.5 小时
|
||||
this.kafka = new Kafka({
|
||||
clientId,
|
||||
brokers,
|
||||
logLevel: logLevel.WARN,
|
||||
retry: {
|
||||
initialRetryTime: 100,
|
||||
retries: 8,
|
||||
initialRetryTime: 1000, // 1 秒
|
||||
maxRetryTime: 300000, // 最大 5 分钟
|
||||
retries: 15, // 最多 15 次
|
||||
multiplier: 2, // 指数退避因子
|
||||
restartOnFailure: async () => true,
|
||||
},
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -95,13 +95,17 @@ export class MpcEventConsumerService implements OnModuleInit, OnModuleDestroy {
|
|||
this.logger.log(`[INIT] Brokers: ${brokers.join(', ')}`);
|
||||
this.logger.log(`[INIT] Topics to subscribe: ${Object.values(MPC_TOPICS).join(', ')}`);
|
||||
|
||||
// 企业级重试配置:指数退避,最多重试约 2.5 小时
|
||||
this.kafka = new Kafka({
|
||||
clientId,
|
||||
brokers,
|
||||
logLevel: logLevel.WARN,
|
||||
retry: {
|
||||
initialRetryTime: 100,
|
||||
retries: 8,
|
||||
initialRetryTime: 1000, // 1 秒
|
||||
maxRetryTime: 300000, // 最大 5 分钟
|
||||
retries: 15, // 最多 15 次
|
||||
multiplier: 2, // 指数退避因子
|
||||
restartOnFailure: async () => true,
|
||||
},
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -49,13 +49,21 @@ export class DepositEventConsumerService implements OnModuleInit, OnModuleDestro
|
|||
this.logger.log(`[INIT] Brokers: ${brokers.join(', ')}`);
|
||||
this.logger.log(`[INIT] Topics: ${Object.values(DEPOSIT_TOPICS).join(', ')}`);
|
||||
|
||||
// 企业级重试配置:
|
||||
// - 初始重试间隔 1 秒
|
||||
// - 最大重试间隔 5 分钟
|
||||
// - 最多重试 15 次(指数退避约 2.5 小时)
|
||||
// - 乘数因子 2(每次重试间隔翻倍)
|
||||
this.kafka = new Kafka({
|
||||
clientId,
|
||||
brokers,
|
||||
logLevel: logLevel.WARN,
|
||||
retry: {
|
||||
initialRetryTime: 100,
|
||||
retries: 8,
|
||||
initialRetryTime: 1000, // 1 秒
|
||||
maxRetryTime: 300000, // 最大 5 分钟
|
||||
retries: 15, // 最多 15 次
|
||||
multiplier: 2, // 指数退避因子
|
||||
restartOnFailure: async () => true, // 失败后重启消费者
|
||||
},
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -46,13 +46,17 @@ export class PlantingEventConsumerService implements OnModuleInit, OnModuleDestr
|
|||
this.logger.log(`[INIT] Brokers: ${brokers.join(', ')}`);
|
||||
this.logger.log(`[INIT] Topics: ${Object.values(PLANTING_TOPICS).join(', ')}`);
|
||||
|
||||
// 企业级重试配置:指数退避,最多重试约 2.5 小时
|
||||
this.kafka = new Kafka({
|
||||
clientId: `${clientId}-planting`,
|
||||
brokers,
|
||||
logLevel: logLevel.WARN,
|
||||
retry: {
|
||||
initialRetryTime: 100,
|
||||
retries: 8,
|
||||
initialRetryTime: 1000, // 1 秒
|
||||
maxRetryTime: 300000, // 最大 5 分钟
|
||||
retries: 15, // 最多 15 次
|
||||
multiplier: 2, // 指数退避因子
|
||||
restartOnFailure: async () => true,
|
||||
},
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -61,13 +61,17 @@ export class WithdrawalEventConsumerService implements OnModuleInit, OnModuleDes
|
|||
this.logger.log(`[INIT] GroupId: ${groupId}`);
|
||||
this.logger.log(`[INIT] Brokers: ${brokers.join(', ')}`);
|
||||
|
||||
// 企业级重试配置:指数退避,最多重试约 2.5 小时
|
||||
this.kafka = new Kafka({
|
||||
clientId,
|
||||
brokers,
|
||||
logLevel: logLevel.WARN,
|
||||
retry: {
|
||||
initialRetryTime: 100,
|
||||
retries: 8,
|
||||
initialRetryTime: 1000, // 1 秒
|
||||
maxRetryTime: 300000, // 最大 5 分钟
|
||||
retries: 15, // 最多 15 次
|
||||
multiplier: 2, // 指数退避因子
|
||||
restartOnFailure: async () => true,
|
||||
},
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue