IvanWoo / mq-playground

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mq-playground

prerequisites

setup

tl;dr: bash scripts/up.sh

namespace

kubectl create namespace mq --dry-run=client -o yaml | kubectl apply -f -

rabbitmq

follow the bitnami rabbitmq chart to install rabbitmq

helm repo add bitnami https://charts.bitnami.com/bitnami
helm upgrade --install mq-rabbitmq bitnami/rabbitmq -n mq -f rabbitmq/values.yaml

verify the rabbitmq is running

kubectl port-forward --namespace mq svc/mq-rabbitmq 15672:15672

then visit http://localhost:15672/ with credential

username: admin
password: admin

port forward to localhost

kubectl port-forward --namespace mq svc/mq-rabbitmq 5672:5672

redis

follow the bitnami redis chart to install redis

helm repo add bitnami https://charts.bitnami.com/bitnami
helm upgrade --install mq-redis bitnami/redis -n mq -f redis/values.yaml

verify the installation

kubectl exec -it svc/mq-redis-master -n mq -- redis-cli -h mq-redis-master -a admin_password scan 0

port forward to localhost

kubectl port-forward --namespace mq svc/mq-redis-master 6379:6379

playground

python celery

publish messages

cd py
pdm install
pdm run python producer.py

workers

pdm run celery -A proj worker -l INFO -Q default
pdm run celery -A proj worker -l INFO -Q slow --prefetch-multiplier=1 --concurrency=1

monitor

pdm run celery -A proj flower

restart

  • Warm shutdown
    • wait for tasks to complete
  • Cold shutdown
    • terminate ASAP
    • Restoring unacknowledged message(s)

cleanup

tl;dr: bash scripts/down.sh

helm uninstall mq-redis -n mq
helm uninstall mq-rabbitmq -n mq
kubectl delete pvc --all -n mq
kubectl delete namespace mq

references

About


Languages

Language:Shell 61.0%Language:Python 39.0%