Использование Pulsar в качестве бэкэнда очереди сообщений Milvus
Apache Pulsar — один из бэкэндов очереди сообщений (WAL), поддерживаемых Milvus. В Milvus 3.x по умолчанию используется Woodpecker в качестве очереди сообщений; Pulsar по-прежнему полностью поддерживается для пользователей, предпочитающих именно его. Pulsar в основном используется с Milvus Distributed (кластером); в автономных развертываниях обычно используется встроенный Woodpecker или RocksMQ.
Совместимость версий
| Версия Milvus | Поддерживаемая версия Pulsar | По умолчанию |
|---|---|---|
| 2.5.x и более поздние | Pulsar v3 (рекомендуется) или Pulsar v2 | Pulsar v3 (через Helm / Milvus Operator) |
| 2.4.x и более ранние версии | Pulsar v2 | Pulsar v2 |
Начиная с Milvus 2.5, диаграмма Helm для Milvus и Milvus Operator по умолчанию развертывают Pulsar v3; Pulsar v2 по-прежнему поддерживается. См. разделы «Обновление Pulsar с версии v2 до v3 » и «Продолжение использования Pulsar v2».
Развертывание кластера Milvus с Pulsar с помощью Helm
Установка
Чтобы развернуть кластер Milvus, использующий входящий в состав дистрибутива Pulsar (вместо Woodpecker), установите диаграмму Helm с включенным Streaming Node:
helm install my-release zilliztech/milvus \
--set image.all.tag=v3.0.0 \
--set pulsarv3.enabled=true \
--set woodpecker.enabled=false \
--set streaming.enabled=true \
--set indexNode.enabled=false
В Kubernetes версии 1.25 и более поздних, если у вас возникнут проблемы с API PodDisruptionBudget из встроенного под-чарта Pulsar, отключите политики PDB Pulsar:
helm install my-release zilliztech/milvus \
--set pulsar.bookkeeper.pdb.usePolicy=false \
--set pulsar.broker.pdb.usePolicy=false \
--set pulsar.proxy.pdb.usePolicy=false \
--set pulsar.zookeeper.pdb.usePolicy=false
Настройка
Чтобы подключить Milvus к внешнему сервису Pulsar, отключите встроенный Pulsar и включите « externalPulsar » в переопределении « values.yaml »:
pulsarv3:
enabled: false
externalPulsar:
enabled: true
host: <your_pulsar_host>
port: 6650
maxMessageSize: "5242880" # 5 MB, maximum size of each message
tenant: public
namespace: default
helm install my-release zilliztech/milvus -f values.yaml
Удаление
helm uninstall my-release
Если вы использовали встроенный Pulsar и хотите удалить его сохраненные данные, удалите PVC Pulsar (с именем my-release-pulsarv3-*):
kubectl get pvc | grep my-release-pulsarv3
kubectl delete pvc <pulsar-pvc-name> ...
Разверните кластер Milvus с Pulsar с помощью Milvus Operator
С помощью Milvus Operator настройте Pulsar в разделе « spec.dependencies.pulsar » (поддерживается только для кластера Milvus). « pulsar » поддерживает « external » и « inCluster ».
Внешний Pulsar
apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
dependencies:
pulsar:
external: true
endpoints:
- 192.168.1.1:6650
components: {}
config: {}
Внутренний (внутрикластерный) Pulsar
apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
dependencies:
pulsar:
inCluster:
values:
components:
autorecovery: false
zookeeper:
replicaCount: 1
bookkeeper:
replicaCount: 1
broker:
replicaCount: 1
configData:
autoSkipNonRecoverableData: "true"
managedLedgerDefaultEnsembleSize: "1"
managedLedgerDefaultWriteQuorum: "1"
managedLedgerDefaultAckQuorum: "1"
proxy:
replicaCount: 1
components: {}
config: {}
Примените конфигурацию (предполагая, что файл называется milvuscluster.yaml):
kubectl apply -f milvuscluster.yaml
Удаление
kubectl delete milvus my-release
Примечания
- Обновление с версии 2.5.x до 2.6.x: Ограничения, связанные с очередью сообщений: При обновлении до Milvus v3.0.0 необходимо сохранить текущий выбор системы очереди сообщений. Переключение между различными системами очередей сообщений во время обновления не поддерживается. Поддержка смены систем очередей сообщений будет доступна в будущих версиях. Если вы используете Pulsar и хотите продолжить его использование, не меняйте систему очередей сообщений во время обновления.
- Pulsar v2 → v3: см. раздел «Обновление Pulsar с версии v2 до v3»; чтобы остаться на версии v2, см. раздел «Продолжение использования Pulsar v2».