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[] {
|
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] Brokers: ${brokers}`);
|
||||||
this.logger.log(`[INIT] Topics: ${Object.values(ACK_TOPICS).join(', ')}`);
|
this.logger.log(`[INIT] Topics: ${Object.values(ACK_TOPICS).join(', ')}`);
|
||||||
|
|
||||||
|
// 企业级重试配置:指数退避,最多重试约 2.5 小时
|
||||||
this.kafka = new Kafka({
|
this.kafka = new Kafka({
|
||||||
clientId,
|
clientId,
|
||||||
brokers,
|
brokers,
|
||||||
logLevel: logLevel.WARN,
|
logLevel: logLevel.WARN,
|
||||||
retry: {
|
retry: {
|
||||||
initialRetryTime: 100,
|
initialRetryTime: 1000, // 1 秒
|
||||||
retries: 8,
|
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] Brokers: ${brokers.join(', ')}`);
|
||||||
this.logger.log(`[INIT] Topics to subscribe: ${Object.values(MPC_TOPICS).join(', ')}`);
|
this.logger.log(`[INIT] Topics to subscribe: ${Object.values(MPC_TOPICS).join(', ')}`);
|
||||||
|
|
||||||
|
// 企业级重试配置:指数退避,最多重试约 2.5 小时
|
||||||
this.kafka = new Kafka({
|
this.kafka = new Kafka({
|
||||||
clientId,
|
clientId,
|
||||||
brokers,
|
brokers,
|
||||||
logLevel: logLevel.WARN,
|
logLevel: logLevel.WARN,
|
||||||
retry: {
|
retry: {
|
||||||
initialRetryTime: 100,
|
initialRetryTime: 1000, // 1 秒
|
||||||
retries: 8,
|
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] Brokers: ${brokers.join(', ')}`);
|
||||||
this.logger.log(`[INIT] Topics: ${Object.values(WITHDRAWAL_TOPICS).join(', ')}`);
|
this.logger.log(`[INIT] Topics: ${Object.values(WITHDRAWAL_TOPICS).join(', ')}`);
|
||||||
|
|
||||||
|
// 企业级重试配置:指数退避,最多重试约 2.5 小时
|
||||||
this.kafka = new Kafka({
|
this.kafka = new Kafka({
|
||||||
clientId,
|
clientId,
|
||||||
brokers,
|
brokers,
|
||||||
logLevel: logLevel.WARN,
|
logLevel: logLevel.WARN,
|
||||||
retry: {
|
retry: {
|
||||||
initialRetryTime: 100,
|
initialRetryTime: 1000, // 1 秒
|
||||||
retries: 8,
|
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] Brokers: ${brokers.join(', ')}`);
|
||||||
this.logger.log(`[INIT] Topics to subscribe: ${Object.values(BLOCKCHAIN_TOPICS).join(', ')}`);
|
this.logger.log(`[INIT] Topics to subscribe: ${Object.values(BLOCKCHAIN_TOPICS).join(', ')}`);
|
||||||
|
|
||||||
|
// 企业级重试配置:指数退避,最多重试约 2.5 小时
|
||||||
this.kafka = new Kafka({
|
this.kafka = new Kafka({
|
||||||
clientId,
|
clientId,
|
||||||
brokers,
|
brokers,
|
||||||
logLevel: logLevel.WARN,
|
logLevel: logLevel.WARN,
|
||||||
retry: {
|
retry: {
|
||||||
initialRetryTime: 100,
|
initialRetryTime: 1000, // 1 秒
|
||||||
retries: 8,
|
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] Brokers: ${brokers.join(', ')}`);
|
||||||
this.logger.log(`[INIT] Topics to subscribe: ${Object.values(MPC_TOPICS).join(', ')}`);
|
this.logger.log(`[INIT] Topics to subscribe: ${Object.values(MPC_TOPICS).join(', ')}`);
|
||||||
|
|
||||||
|
// 企业级重试配置:指数退避,最多重试约 2.5 小时
|
||||||
this.kafka = new Kafka({
|
this.kafka = new Kafka({
|
||||||
clientId,
|
clientId,
|
||||||
brokers,
|
brokers,
|
||||||
logLevel: logLevel.WARN,
|
logLevel: logLevel.WARN,
|
||||||
retry: {
|
retry: {
|
||||||
initialRetryTime: 100,
|
initialRetryTime: 1000, // 1 秒
|
||||||
retries: 8,
|
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] Brokers: ${brokers.join(', ')}`);
|
||||||
this.logger.log(`[INIT] Topics: ${Object.values(DEPOSIT_TOPICS).join(', ')}`);
|
this.logger.log(`[INIT] Topics: ${Object.values(DEPOSIT_TOPICS).join(', ')}`);
|
||||||
|
|
||||||
|
// 企业级重试配置:
|
||||||
|
// - 初始重试间隔 1 秒
|
||||||
|
// - 最大重试间隔 5 分钟
|
||||||
|
// - 最多重试 15 次(指数退避约 2.5 小时)
|
||||||
|
// - 乘数因子 2(每次重试间隔翻倍)
|
||||||
this.kafka = new Kafka({
|
this.kafka = new Kafka({
|
||||||
clientId,
|
clientId,
|
||||||
brokers,
|
brokers,
|
||||||
logLevel: logLevel.WARN,
|
logLevel: logLevel.WARN,
|
||||||
retry: {
|
retry: {
|
||||||
initialRetryTime: 100,
|
initialRetryTime: 1000, // 1 秒
|
||||||
retries: 8,
|
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] Brokers: ${brokers.join(', ')}`);
|
||||||
this.logger.log(`[INIT] Topics: ${Object.values(PLANTING_TOPICS).join(', ')}`);
|
this.logger.log(`[INIT] Topics: ${Object.values(PLANTING_TOPICS).join(', ')}`);
|
||||||
|
|
||||||
|
// 企业级重试配置:指数退避,最多重试约 2.5 小时
|
||||||
this.kafka = new Kafka({
|
this.kafka = new Kafka({
|
||||||
clientId: `${clientId}-planting`,
|
clientId: `${clientId}-planting`,
|
||||||
brokers,
|
brokers,
|
||||||
logLevel: logLevel.WARN,
|
logLevel: logLevel.WARN,
|
||||||
retry: {
|
retry: {
|
||||||
initialRetryTime: 100,
|
initialRetryTime: 1000, // 1 秒
|
||||||
retries: 8,
|
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] GroupId: ${groupId}`);
|
||||||
this.logger.log(`[INIT] Brokers: ${brokers.join(', ')}`);
|
this.logger.log(`[INIT] Brokers: ${brokers.join(', ')}`);
|
||||||
|
|
||||||
|
// 企业级重试配置:指数退避,最多重试约 2.5 小时
|
||||||
this.kafka = new Kafka({
|
this.kafka = new Kafka({
|
||||||
clientId,
|
clientId,
|
||||||
brokers,
|
brokers,
|
||||||
logLevel: logLevel.WARN,
|
logLevel: logLevel.WARN,
|
||||||
retry: {
|
retry: {
|
||||||
initialRetryTime: 100,
|
initialRetryTime: 1000, // 1 秒
|
||||||
retries: 8,
|
maxRetryTime: 300000, // 最大 5 分钟
|
||||||
|
retries: 15, // 最多 15 次
|
||||||
|
multiplier: 2, // 指数退避因子
|
||||||
|
restartOnFailure: async () => true,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue