前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Helm 部署 RocketMQ

Helm 部署 RocketMQ

原创
作者头像
sir5kong
发布2023-07-12 23:10:09
1.9K0
发布2023-07-12 23:10:09
举报
文章被收录于专栏:企业容器化之路

版本兼容性

  • Kubernetes 1.18+
  • Helm 3.3+
  • RocketMQ >= 4.5 (5.x 未测试)

添加 helm 仓库

代码语言:shell
复制
## 添加 helm 仓库
helm repo add rocketmq-repo https://helm-charts.itboon.top/rocketmq
helm repo update rocketmq-repo

部署案例

代码语言:shell
复制
## 部署一个最小化的 rocketmq 集群
## 这里关闭持久化存储,仅演示部署效果
helm upgrade --install rocketmq \
  --namespace rocketmq-demo \
  --create-namespace \
  --set broker.persistence.enabled="false" \
  rocketmq-repo/rocketmq
代码语言:shell
复制
## 部署测试集群, 启用 Dashboard (默认已开启持久化存储)
helm upgrade --install rocketmq \
  --namespace rocketmq-demo \
  --create-namespace \
  --set dashboard.enabled="true" \
  --set dashboard.ingress.enabled="true" \
  --set dashboard.ingress.hosts[0].host="rocketmq-demo.example.com" \
  rocketmq-repo/rocketmq
代码语言:shell
复制
## 部署高可用集群, 多 Master 多 Slave
## 3个 master 节点,每个 master 具有1个副节点,共6个 broker 节点
helm upgrade --install rocketmq \
  --namespace rocketmq-demo \
  --create-namespace \
  --set broker.size.master="3" \
  --set broker.size.replica="1" \
  --set broker.master.jvmMemory="-Xms2g -Xmx2g -Xmn1g" \
  --set broker.master.resources.requests.memory="4Gi" \
  --set nameserver.replicaCount="3" \
  --set dashboard.enabled="true" \
  --set dashboard.ingress.enabled="true" \
  --set dashboard.ingress.hosts[0].host="rocketmq-ha.example.com" \
  rocketmq-repo/rocketmq

具体资源配额请根据实际环境调整,参考 examples

镜像仓库

代码语言:yaml
复制
image:
  repository: apache/rocketmq
  tag: 4.9.7

部署特定版本

代码语言:shell
复制
helm upgrade --install rocketmq \
  --namespace rocketmq-demo \
  --create-namespace \
  --set image.tag="4.9.5" \
  rocketmq-repo/rocketmq

Broker 集群架构

单 Master 模式

代码语言:yaml
复制
broker:
  size:
    master: 1
    replica: 0

多 Master 模式

一个集群无Slave,全是Master,例如2个Master或者3个Master,这种模式的优缺点如下:

  • 优点:配置简单,单个Master宕机或重启维护对应用无影响,性能最高;
  • 缺点:单台机器宕机期间,这台机器上未被消费的消息在机器恢复之前不可订阅,消息实时性会受到影响。
代码语言:yaml
复制
broker:
  size:
    master: 3
    replica: 0

多 Master 多 Slave 模式

每个Master配置一个Slave,有多对Master-Slave,HA采用异步复制方式,主备有短暂消息延迟(毫秒级),这种模式的优缺点如下:

  • 优点:Master宕机后,消费者仍然可以从Slave消费,而且此过程对应用透明,不需要人工干预,性能同多Master模式几乎一样;
  • 缺点:Master宕机,磁盘损坏情况下会丢失少量消息 (已经同步到 Slave 的数据不受影响)
代码语言:yaml
复制
broker:
  size:
    master: 3
    replica: 1
# 3个 master 节点,每个 master 具有1个副节点,共6个 broker 节点

Helm Chart 源码

https://github.com/itboon/rocketmq-helm

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 版本兼容性
  • 添加 helm 仓库
  • 部署案例
  • 镜像仓库
    • 部署特定版本
    • Broker 集群架构
      • 单 Master 模式
        • 多 Master 模式
          • 多 Master 多 Slave 模式
          • Helm Chart 源码
          相关产品与服务
          消息队列 RocketMQ 版
          消息队列 RocketMQ 版(TDMQ for RocketMQ,简称TDMQ RocketMQ 版) 是一款分布式高可用的消息队列服务,基于 Apache RocketMQ 的 4.x 和 5.x 架构提供不同的产品形态,支持开源客户端零改造接入,同时具备计算存储分离,灵活扩缩容的优势。TDMQ RocketMQ 版可以支持百万级 TPS 的吞吐量,适用于各类大规模、低延时、对可靠性要求高的在线消息业务场景。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档