You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Open-IM-Server/pkg/common/config/mq.go

42 lines
957 B

package config
import (
"strings"
"github.com/openimsdk/tools/errs"
)
const (
QueueEngineKafka = "kafka"
QueueEngineRedis = "redis"
QueueEngineMemory = "memory"
)
func NormalizeQueueEngine(engine string) string {
switch strings.ToLower(strings.TrimSpace(engine)) {
case "", "kafka":
return QueueEngineKafka
case "redis":
return QueueEngineRedis
case "memory":
return QueueEngineMemory
default:
return strings.ToLower(strings.TrimSpace(engine))
}
}
func ValidateQueueEngine(engine string, standalone bool) (string, error) {
normalized := NormalizeQueueEngine(engine)
switch normalized {
case QueueEngineKafka, QueueEngineRedis:
return normalized, nil
case QueueEngineMemory:
if standalone {
return normalized, nil
}
return "", errs.ErrArgs.WrapMsg("unsupported queue engine for microservice deployment", "engine", engine)
default:
return "", errs.ErrArgs.WrapMsg("unsupported queue engine", "engine", engine)
}
}