fix: 使用合法的 JetStream consumer 名称
This commit is contained in:
@@ -186,9 +186,13 @@ func OpenConsumer(ctx context.Context, manager consumerManager, stream, subjectB
|
||||
return nil, err
|
||||
}
|
||||
key := placement.Key()
|
||||
// JetStream consumer names may not contain dots even though subjects do.
|
||||
// Keep the placement subject hierarchical while using a stable, legal name
|
||||
// for the durable cursor.
|
||||
consumerName := strings.ReplaceAll(key, ".", "-")
|
||||
consumer, err := manager.CreateOrUpdateConsumer(ctx, stream, jetstream.ConsumerConfig{
|
||||
Name: key,
|
||||
Durable: key,
|
||||
Name: consumerName,
|
||||
Durable: consumerName,
|
||||
FilterSubject: strings.TrimSuffix(subjectBase, ".") + "." + key,
|
||||
AckPolicy: jetstream.AckExplicitPolicy,
|
||||
AckWait: 5 * time.Minute,
|
||||
|
||||
Reference in New Issue
Block a user