KubeBlocks supports dynamic reconfiguration of 165+ broker parameters via mqadmin updateBrokerConfig. Changes take effect without a broker restart.
Before proceeding, verify your environment meets these requirements:
kubectl v1.21+ installed and configured with cluster accessThe following example enables multi-dispatch (enableMultiDispatch), which allows a message to be dispatched to multiple consumer groups simultaneously:
kubectl apply -f - <<EOF
apiVersion: operations.kubeblocks.io/v1alpha1
kind: OpsRequest
metadata:
name: rocketmq-reconfiguring
namespace: demo
spec:
type: Reconfiguring
clusterName: rocketmq-cluster
reconfigures:
- componentName: broker
parameters:
- key: enableMultiDispatch
value: "true"
EOF
Monitor progress:
kubectl get opsrequest rocketmq-reconfiguring -n demo -w
NAME TYPE CLUSTER STATUS PROGRESS AGE
rocketmq-reconfiguring Reconfiguring rocketmq-cluster Succeed 1/1 10s
Verify the parameter was applied inside the broker (replace broker-t9j-0 with your actual broker pod name):
kubectl exec -n demo rocketmq-cluster-broker-t9j-0 -c rocketmq-broker -- \
bash -c 'export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 && \
/home/rocketmq/rocketmq-4.9.6/bin/mqadmin getBrokerConfig \
-n rocketmq-cluster-namesrv.demo.svc.cluster.local:9876 \
-b $(hostname -i):10911 2>/dev/null | grep enableMultiDispatch'
enableMultiDispatch=true
Set the parameter back to its default value:
kubectl apply -f - <<EOF
apiVersion: operations.kubeblocks.io/v1alpha1
kind: OpsRequest
metadata:
name: rocketmq-reconfiguring-revert
namespace: demo
spec:
type: Reconfiguring
clusterName: rocketmq-cluster
reconfigures:
- componentName: broker
parameters:
- key: enableMultiDispatch
value: "false"
EOF
kubectl delete opsrequest rocketmq-reconfiguring rocketmq-reconfiguring-revert -n demo --ignore-not-found