2026阿里云国际版云消息队列 Kafka 版实战教程:三种计费模型怎么算、新加坡真实单价、磁盘为什么比实例费还贵
阿里云国际版的云消息队列 Kafka 版(ApsaraMQ for Kafka)有三种完全不同的卖法:订阅(包月)、按量付费、Serverless。
- 先给结论:Kafka 版选型的六个决策点
- 三种计费模型:公式先摆清楚
- 真实单价:国际站三张价目表
- 五个可复算账单(全部按 730 小时/月)
- 选型:从峰值吞吐反推规格、分区和磁盘
- 从零开通:控制台九步 + 四个接入点 + 能跑通的代码
- 十一个计费与稳定性坑(都来自官方文档本身)
- 标准版 / 专业版 / Serverless 怎么分工
阿里云国际版的云消息队列 Kafka 版(ApsaraMQ for Kafka)有三种完全不同的卖法:订阅(包月)、按量付费、Serverless。同一个"2 核 8G 级"的入口,新加坡地域订阅标准版 hw.2xlarge 是 370 美元/月,按量专业版 hw.6xlarge 是 1.98 美元/小时(一个月 730 小时就是 1,445 美元),而 Serverless 预留 30 MB/s 峰值大约 286 美元/月——差价接近 5 倍。更反直觉的是,真正把账单顶上去的往往不是实例规格,而是磁盘:30 MB/s 峰值、72 小时消息保留,需要 7.4 TB(约 7,400 GB)存储,按新加坡高效云盘 8 美元/100GB/月算就是 592 美元/月,比 370 美元的实例费还高 60%。这篇把国际站 Kafka 版的三种计费公式、Region Group 2(新加坡/香港/东京/首尔/欧美)的真实美元单价、五个可复算账单、规格与分区选型、控制台开通步骤、9092/9093/9094/9095 四个接入点的选择,以及官方文档里最容易被忽略的计费坑,一次讲透。
Meta Description: 2026阿里云国际版Kafka实战:订阅370美元/月、按量1.98美元/小时、Serverless预留0.00508美元/MB/s/小时;30MB/s峰值72小时保留要7.4TB磁盘592美元;三种计费公式、接入点端口、开通步骤与计费坑全解析。
关键词:阿里云国际版Kafka、ApsaraMQ for Kafka、消息队列Kafka价格、Kafka Serverless计费、Kafka磁盘保留时长、Kafka分区数限制、新加坡Kafka、Kafka接入点9092
一、先给结论:Kafka 版选型的六个决策点
在翻规格表之前,先把官方文档里能直接决定账单的六件事按优先级排好,这六条决定了你 80% 的成本:
- 先定 editions(标准版还是专业版),再谈规格。 标准版 SLA 99.95%(多可用区 99.99%),但不支持 SASL 和 ACL;专业版 SLA 99.99%、三可用区、独占物理集群,才支持 SASL/ACL。如果你的客户端需要账号密码认证(公网接入强制要求),标准版这条路直接堵死。
- 再定计费模型。 峰值吞吐稳定在 50 MB/s 以上、要长期跑,订阅最便宜;峰值波动大、白天高夜里低,Serverless 按峰值小时计费更划算;短期做 POC 或压测,按量付费按小时出账。
- 磁盘容量和消息保留时长必须一起算。 保留 72 小时是默认值,但它是按峰值写入量 × 保留时长堆出来的,容易被漏掉,而磁盘单价按每 100 GB 计,量一大就是账单主力。
- 分区数决定额外费用。 订阅规格自带 1000 个分区,超出部分单独收费(新加坡 0.46 美元/分区/月);Serverless 的分区从第 1 个就开始计费。
- 公网接入是奢侈品。 公网只有一个接入点(9093,SASL_SSL),且按公网流量单独计费,香港 0.167 美元/GB。生产环境能用 VPC 内网就不要开公网。
- 别指望"停掉就不收费"。 按量付费实例只要存在就计费,停生产者、删 Topic 都不停计费,唯一止血手段是释放实例。
二、三种计费模型:公式先摆清楚
官方对三种模型的计费口径写得很明确,直接抄公式比看规格表有用:
订阅(包月) = 流量规格月费 + 磁盘(每 100 GB/月)+ 额外分区(每分区/月)+ 公网带宽(按 Mbps 包月)。买定离手,跑不满也不退。
按量付费 = (带宽价 + 流量规格价 + 磁盘单价 × 容量/100 + 分区单价 × 额外分区) × 小时数。不足 1 小时按 1 小时算,账单每 24 小时出一次,次日从账户余额扣。注意"磁盘单价 × 容量/100"这个除法——磁盘单价是每 100 GB 每小时,不是每 GB。
Serverless = 预留发布容量费 + 弹性发布流量费 + 预留订阅容量费 + 弹性订阅流量费 + 存储费 + 分区费。预留容量按 MB/s × 小时计费,按小时取峰值,不足 1 小时按 1 小时;弹性部分是预留被打满之后的溢出,按 GB 计。购买即开始计费。
三种模型不是互斥的产品线,而是同一套实例的三种买单方式,所以规格名(hw.2xlarge、hw.6xlarge)在三种模型下都能对上,差价体现在计价单位上:订阅看月费、按量看小时价、Serverless 看 MB/s 单价。
还有一个已经变化的事实要记住:按 Topic 规格购买的方式已经停售。如果你手里还有老账单或老文档按 Topic 数计价,官方给的存量转换系数是包月 23.913、按量 45.045,转换后 Topic 配额等于分区数、Group 配额等于分区数 ×2,不足部分官方免费补足。看老教程时别被 Topic 计价带偏。
三、真实单价:国际站三张价目表
阿里云国际站的 Kafka 价格按 Region Group(地域组) 分三档,同一个规格在不同组能差 30% 以上。先把分组记住,后面所有数字都挂在这张表上:
| 地域组 | 覆盖地域 | 相对水平 |
|---|---|---|
| Group 1 | 中国大陆全部(杭州、上海、北京、深圳、广州、成都、张家口、乌兰察布等,福州本地域已关停) | 最低 |
| Group 2 | 新加坡、中国香港、东京、首尔、弗吉尼亚、硅谷、法兰克福、伦敦 | 最高(基准价) |
| Group 3 | 吉隆坡、雅加达、马尼拉、曼谷 | 介于两者之间 |
| 单列 | 沙特(利雅得)伙伴地域 | 单独一列,不并入三组 |
绝大多数出海业务落在 Group 2,所以下面以 Group 2 为主体,同时给出 Group 1 / Group 3 的对照,方便你判断"换地域能省多少"。
3.1 订阅(包月)月费,单位美元
| 规格 | 版本 | Group 2 | Group 1 | Group 3 |
|---|---|---|---|---|
| hw.2xlarge | 标准版(高写入) | 370 | 250 | 340 |
| hw.3xlarge | 标准版 | 530 | 360 | 480 |
| hw.6xlarge | 标准版 | 760 | 520 | 700 |
| hw.9xlarge | 标准版 | 960 | 660 | 880 |
| hw.12xlarge | 标准版 | 1,160 | 800 | 1,070 |
| hw.2xlarge | 专业版 | 870 | 600 | 800 |
| hw.6xlarge | 专业版 | 1,510 | 1,130 | 1,510 |
| hw.12xlarge | 专业版 | 2,330 | 1,750 | 2,330 |
| hw.30xlarge | 专业版 | 5,170 | 3,880 | 5,170 |
| hw.100xlarge | 专业版 | 9,670 | 7,270 | 9,670 |
| hw2.600xlarge | 专业版 | 52,491 | 36,200 | 48,147 |
标准版自带 1000 个分区。专业版的高读取规格(hr.)与同档 hw. 同价,读写比 5:1,适合消费量远大于生产量的场景(比如一份数据被多个下游同时订阅)。
一句话读法:Group 1 大约是 Group 2 的 68%。同样一个标准版 hw.2xlarge,从新加坡搬到杭州就省 120 美元/月,但 latency 和合规边界完全不同——这笔账不能只看价格。
3.2 按量付费小时价(Group 2),单位美元/小时
| 规格 | 版本 | 小时价 | 折合月费(730h) |
|---|---|---|---|
| hw.2xlarge | 标准版 | 0.470 | 343 |
| hw.3xlarge | 标准版 | 0.650 | 475 |
| hw.6xlarge | 标准版 | 0.880 | 642 |
| hw.9xlarge | 标准版 | 1.050 | 767 |
| hw.12xlarge | 标准版 | 1.250 | 913 |
| hw.2xlarge | 专业版 | 1.17 | 854 |
| hw.6xlarge | 专业版 | 1.98 | 1,445 |
| hw.12xlarge | 专业版 | 2.82 | 2,059 |
| hw.30xlarge | 专业版 | 6.03 | 4,402 |
对照 3.1 就能看懂一件事:按量付费不只是"贵一点"。标准版 hw.2xlarge 按量折合月费 343 美元,比订阅 370 美元还便宜——看起来按量更划算?错,这个比较漏了磁盘和分区,也漏了一个致命细节:按量实例只要不释放就一直在计费,跑满一个月没有封顶折扣,而订阅是一次性锁价。真正该比的是"我一个月实际用多少小时",而不是"折合月费"。
顺带说一句官方算例:专业版 hw.6xlarge + 600 GB SSD + 200 个额外分区,按量合计 1.61 美元/小时,约 1,159.20 美元/月(该算例取自中国大陆地域)。而在新加坡,光 hw.6xlarge 的实例部分就是 1.98 美元/小时,比大陆整单还贵——跨地域比价的坑就在这里。
3.3 Serverless 单价(Group 2)
Serverless 的计价单位是 MB/s × 小时,分"预留"和"弹性"两段,还分发布(写入)和订阅(消费)两个方向:
| 计费项 | 计量单位 | Basic | 标准版 | 专业版 |
|---|---|---|---|---|
| 预留发布容量(0–60 MB/s) | 美元/MB/s/小时 | 0.0008 | 0.00508 | 0.00761 |
| 预留订阅容量(0–60 MB/s) | 美元/MB/s/小时 | 0.0004 | 0.00254 | 0.00382 |
| 弹性发布流量 | 美元/GB | — | 0.0120833 | 0.02175 |
| 弹性订阅流量 | 美元/GB | — | 0.0060417 | 0.010875 |
| 存储(1–1024 GB) | 美元/GB/小时 | 0.00003 | 0.00015 | 0.00022 |
| 分区(1–1000) | 美元/分区/小时 | 0.00008 | 0.000090 | 0.000162 |
预留容量超过 60 MB/s 后单价递减,标准版在 (60, 300] 区间是 0.00320/0.00160,在 (300, 1024] 是 0.00201/0.00101,超过 1024 MB/s 是 0.00127/0.00064。专业版在 (60, 300] 区间是阶梯式:0.4566 + (n-60) × 0.00479。Group 1 大致是 Group 2 的 70%–75%,Group 3 居中。
Serverless 的读写比是 3:1(同一份数据的写入与消费能力配比),如果你下游消费量远大于生产量(比如一份埋点数据被三个系统订阅),预留订阅容量会明显不够,要么提预留、要么吃弹性流量的单价。
3.4 磁盘、分区、公网带宽
| 项目 | 计量单位 | Group 1 | Group 2 | Group 3 |
|---|---|---|---|---|
| 高效云盘 | 美元/100 GB/月 | 6 | 8 | 8 |
| SSD 云盘 | 美元/100 GB/月 | 16 | 23 | 21 |
| 额外分区(订阅) | 美元/分区/月 | 0.32 | 0.46 | 0.42 |
按量口径下,磁盘是同价折算成小时:高效云盘 0.02、SSD 0.04 美元/100 GB/小时,额外分区 0.000639 美元/分区/小时。
公网带宽按 Mbps 包月,Group 2 是 1M 3.6 / 2M 7.2 / 3M 10.8 / 4M 14.4 / 5M 18 美元,6 Mbps 以上是 18 + (n-5) × 12.5;香港 1M 4.7、2M 9.4,东京和首尔 1M 4.0、2M 7.9。按量口径:1M 0.01、5M 0.05 美元/小时,6M 以上 0.05 + (n-5) × 0.03。
公网流量另算,不看带宽包:香港 0.167、新加坡/雅加达/马尼拉/曼谷 0.125、东京 0.1、首尔/吉隆坡 0.133、美西和欧洲 0.083、迪拜 0.167 美元/GB。这一段后面会单独算一笔账,因为它能把一个 370 美元的实例变成 800 美元。
四、五个可复算账单(全部按 730 小时/月)
单价看完还是不知道自己要付多少,直接上算例。以下每个都能用三、四节的单价自己复核。
账单 1:新加坡订阅标准版,中等业务
配置:标准版 hw.2xlarge + 600 GB 高效云盘,不额外加分区,不开公网。
实例月费 370.00
磁盘 600GB/100×8 48.00
合计 418.00 美元/月
同一个配置搬到中国大陆(Group 1):250 + 6×6 = 286 美元/月。差 132 美元,46%。这是"地域选择"最直接的价格证据,但要注意它换来的是不同的网络位置与合规环境,不是纯粹的省钱技巧。
账单 2:按量付费压测一天(专业版)
配置:专业版 hw.6xlarge + 600 GB SSD,跑 24 小时就释放。
实例 1.98 × 24 47.52
磁盘 0.04×6 × 24 5.76
合计 53.28 美元/天
如果这个配置改成订阅,月费是 1,510 + 6×23 = 1,648 美元。压测一天按量 53 美元,订阅一个月 1,648 美元——这就是按量付费存在的意义。反过来,如果你的实例要 7×24 跑满一个月,按量是 1.98×730 = 1,445 美元,加上磁盘 175 美元,反而比订阅贵。平衡点非常清晰:跑不满约 22 天就该买订阅。
账单 3:Serverless,峰值 30 MB/s,存储 1 TB,100 个分区
预留发布 30 × 0.00508 = 0.1524 /小时
预留订阅 30 × 0.00254 = 0.0762 /小时
存储 1024 × 0.00015 = 0.1536 /小时
分区 100 × 0.000090 = 0.0090 /小时
合计 = 0.3912 /小时
月费 0.3912 × 730 = 285.6 美元/月
同样的峰值换成订阅标准版 hw.2xlarge(含 600 GB 磁盘)是 418 美元/月。Serverless 便宜 32%,而且不用预估磁盘——这是 Serverless 最实在的优势。
但峰值翻倍到 60 MB/s,Serverless 立刻反超:
(60×0.00508) + (60×0.00254) + 0.1536 + (100×0.000090)
= 0.3048 + 0.1524 + 0.1536 + 0.0090 = 0.6198 /小时
× 730 = 452.5 美元/月 > 订阅 418 美元
解一下平衡点(同样 1 TB 存储、100 分区):0.00762p + 0.1626 = 0.5726,得 p ≈ 54 MB/s。所以判断口径很简单:峰值长期低于 50 MB/s 选 Serverless,高于 50 MB/s 选订阅。这个数字会随存储和分区规模浮动,但量级是稳的——把上面四行改成你自己的参数就能算出准确的交叉点。
账单 4:磁盘才是隐形大头
按官方换算,30 MB/s 峰值约等于 2.47 TB/天(20 MB/s ≈ 1.65 TB/天,60 MB/s ≈ 4.94 TB/天,120 MB/s ≈ 9.89 TB/天)。默认消息保留 72 小时:
保留数据量 = 2.47 TB/天 × 3 天 ≈ 7.4 TB ≈ 7,400 GB
高效云盘 = 74 × 8 = 592 美元/月
SSD 云盘 = 74 × 23 = 1,702 美元/月
一个 370 美元的实例,配出 592 美元的磁盘,磁盘费是实例费的 1.6 倍。而把保留时长从 72 小时压到 24 小时,磁盘降到 25 × 8 = 200 美元/月,直接省 392 美元/月——比重选一个规格档位有效得多。
这里有个容易误判的细节:标准版和专业版买 300 GB 是可用 300 GB + 600 GB 副本免费,副本不额外收钱;但基础版(Basic)买 300 GB 只有 100 GB 业务可用。如果你的账单显示"买了 300 GB 却只能存 100 GB",先确认版本,别怀疑计费系统。
账单 5:公网流量的放大效应
假设每天有 100 GB 数据经公网接入点进出(香港地域,0.167 美元/GB):
3,000 GB/月 × 0.167 = 501 美元/月
比实例费还贵。 这就是为什么官方把公网接入点限制得很死——公网只有一个 9093 端口、只允许 SASL_SSL、强制加密 + 认证。生产环境的标准做法是:客户端和 Kafka 实例放同一个 VPC,走 9092 内网接入点,公网只保留给运维排障,并且排障完就关。
五、选型:从峰值吞吐反推规格、分区和磁盘
5.1 三条硬公式
吞吐换算:MB/s × 86,400 秒 ÷ 1024² 得到 TB/天。官方给了四档参考值(20 / 30 / 60 / 120 MB/s 对应 1.65 / 2.47 / 4.94 / 9.89 TB/天),直接查表更快。
规格冗余:官方建议按峰值的 130% 选规格。业务峰值 40 MB/s,就按 52 MB/s 的能力去买。这不是厂商多卖你东西——Kafka 的流量倾斜会让某个 broker 先到瓶颈,整实例就触发限流,按满载买等于给自己埋一颗定时炸弹。
连接数:C = min(10,000, 1,000 + (F ÷ 100) × 1,000),F 是流量规格(MB/s)。专业版起步 2,000,实际流量每增加 20 MB/s 加 2,000,预留容量每增加 60 MB/s 再加 2,000。做 IoT 或大量短连接客户端时,连接数会比吞吐先成为瓶颈。
5.2 分区数的两个天花板
- 单集群消费组上限 2,000 个,超过就要拆实例或做 Group 聚合。
- 分区创建/删除频率上限 900 个/10 秒,批量建分区的脚本必须限速,否则报错回滚。
- 订阅规格自带 1,000 分区,超出按 0.46 美元/分区/月(Group 2)收费;Serverless 从第 1 个分区起就计费(0.000090 美元/分区/小时,100 个分区约 6.6 美元/月)。
- 开源 Kafka 在分区数超过 1,000 后性能明显下降,ApsaraMQ 声称单 Topic 分区不限且不掉性能,所以它敢把"额外分区"做成独立计费项。这句话的含义是:分区在这里是钱,不是免费资源。
5.3 保留时长与磁盘的联动
保留时长可以设 24–480 小时,默认 72 小时。设长了,磁盘按峰值线性膨胀;设短了,下游故障恢复窗口不够。工程上的做法是按"最长可接受的消费中断时间"定保留时长,而不是按"反正磁盘便宜":
| 峰值写入 | 保留 24h | 保留 72h | 保留 168h(7天) |
|---|---|---|---|
| 10 MB/s(0.82 TB/天) | 200 GB → 16 美元 | 590 GB → 48 美元 | 1,380 GB → 111 美元 |
| 30 MB/s(2.47 TB/天) | 2,470 GB → 200 美元 | 7,400 GB → 592 美元 | 17,300 GB → 1,384 美元 |
| 60 MB/s(4.94 TB/天) | 4,940 GB → 400 美元 | 14,800 GB → 1,184 美元 | 34,600 GB → 2,768 美元 |
(磁盘按 Group 2 高效云盘 8 美元/100 GB/月计。选择 SSD 的话把结果乘 2.9。)
还有一个账号级红线:默认存储上限 30 TB,超限后系统可能清理最旧的消息。也就是说 60 MB/s 峰值下保留 7 天已经逼近 34.6 TB,会直接撞线——这时不是加钱能解决的,必须缩短保留或降峰值。
六、从零开通:控制台九步 + 四个接入点 + 能跑通的代码
6.1 开通与购买
第 1 步,进控制台。 登录阿里云国际站控制台,搜索 "Message Queue for Apache Kafka" 进入产品。新加坡、香港、东京、首尔等地域都已开服,地域在页面右上角切换,必须选对——后面所有资源都绑死在这个地域。
第 2 步,购买实例。 点"购买",按顺序选:
- 地域:出海业务选新加坡或香港,就近接入客户;
- 版本:标准版 / 专业版 / Serverless。标准版不支持 SASL/ACL,需要账号密码认证就必须专业版;
- 规格:参考第五节的 130% 冗余原则;
- 存储:云盘类型(高效云盘 / SSD)+ 容量。按第四节的公式先算清 72 小时保留需要多少;
- 网络:选已有的 VPC 和交换机(vSwitch)。Topic 不能跨地域使用,Kafka 必须和生产者/消费者的 ECS 在同一个地域;
- 安全项:是否开启 ACL(访问控制)、是否开启 VPC 传输加密。这两项直接决定你能用哪些接入点;
- 购买时长:包年包月或按量。
第 3 步,部署实例。 购买完成不等于可用,实例需要在控制台执行部署(Deploy),部署过程中会创建交换机、安全组等依赖资源,完成后状态变为"运行中"。
6.2 四个接入点,选错端口连不上
这是新手最容易卡住的地方。Kafka 版按端口区分安全等级,端口 = 协议 = 认证方式,不存在"随便填一个端口试试":
| 网络 | 端口 | 接入点类型 | 协议 | 加密 | 认证 |
|---|---|---|---|---|---|
| 公网 | 9093 | SSL | SASL_SSL | 是 | 是 |
| VPC | 9092 | 默认 | PLAINTEXT | 否 | 否 |
| VPC | 9094 | SASL | SASL_PLAINTEXT | 否 | 是 |
| VPC | 9095 | SSL | SASL_SSL | 是 | 是 |
选择口径非常直接:
- 公网访问:只能用 9093 + SASL_SSL,强制加密 + 认证,没有"明文公网"这个选项。同时按公网流量计费(香港 0.167 美元/GB)。
- VPC 内网、无安全要求:9092 明文,最省事,压测首选。
- VPC 内网、要认证:9094(SASL_PLAINTEXT),账号密码但不过 TLS。
- VPC 内网、要加密 + 认证:9095(SASL_SSL),生产推荐。
端口不是天生就有的:购买时勾选 ACL 才会激活 9094,勾选 VPC 传输加密才会激活 9095;如果实例已经部署完才去开 ACL,系统会同时激活 9094 和 9095。所以你照着老教程填 9094 却连不上,八成是当初没勾 ACL。
支持两种 SASL 机制:PLAIN(明文用户名密码,配合 SSL 时凭据走加密通道)和 SCRAM-SHA-256(加盐挑战应答,密码不上线,更强)。两者都支持动态创建用户、无需重启实例。
6.3 建 Topic 与 Group
进"实例列表",点实例名,左侧导航选 Topics → Create Topic,需要填:
| 参数 | 说明 | 示例 |
|---|---|---|
| Name | Topic 名 | order-events |
| Description | 备注 | 订单事件流 |
| Partitions | 分区数,决定并行度 | 12 |
| Storage Engine | 仅专业版可选,标准版固定 Cloud Storage | Cloud Storage |
| Message Type | 由存储引擎自动决定 | Normal Message |
| Log Cleanup Policy | 仅 Local Storage 需要 | Delete |
| Tag | 标签 | prod |
两个存储引擎的差别要说清:Cloud Storage 把消息存在阿里云云盘上、分布式三副本,低延迟高可靠,标准版只能用这个;Local Storage 用开源 Kafka 的 ISR 算法、同样三副本,专业版才可选,适合需要开源语义(比如依赖 ISR 行为的监控指标)的场景。消息类型上,Cloud Storage 自动是 Normal Message——同 key 的消息进同一分区并保持发送顺序,但 broker 故障切换时跨分区的全局顺序不保证;需要严格分区内有序就在专业版 + Local Storage 下选 Partitionally Ordered。
实例部署后系统会自动建两个内部 Topic:__alikafka_housekeeping_local_topic 和 __alikafka_housekeeping_cloud_topic,不要删,它们是巡检组件用的。
然后在 Consumer Groups 页面建消费组,让 Group 订阅对应 Topic。一个 Group 可以订阅多个 Topic,一个 Topic 也能被多个 Group 订阅——这也是为什么"消费能力"和"生产能力"要分开估。
6.4 白名单与连通性验证
VPC 接入点要求把客户端所在 ECS 的私网 IP 或网段加进实例白名单,否则连接会在握手阶段超时(表现为 TimeoutException 而不是认证失败,很容易误判成网络不通)。加完之后先在 ECS 上验证端口:
nc -vz <your-instance-endpoint> 9095
返回 succeeded 再写代码。接入点地址在实例详情页的"接入点信息"里,形如 alikafka-xxxx.sg-sg-xxx.alikafka.aliyuncs.com:9095。
6.5 Python 客户端(confluent-kafka)
安装依赖:
pip install confluent-kafka
生产者:
from confluent_kafka import Producer
conf = {
'bootstrap.servers': 'alikafka-xxxx.sg-sg-xxx.alikafka.aliyuncs.com:9095',
'security.protocol': 'SASL_SSL',
'sasl.mechanism': 'PLAIN',
'sasl.username': 'your_username',
'sasl.password': 'your_password',
'ssl.ca.location': '/etc/kafka/alikafka_ca.pem',
}
p = Producer(conf)
p.produce('order-events', key='order-1001', value='{"amount": 99.5}')
p.flush()
print('delivered')
消费者:
from confluent_kafka import Consumer
conf = {
'bootstrap.servers': 'alikafka-xxxx.sg-sg-xxx.alikafka.aliyuncs.com:9095',
'security.protocol': 'SASL_SSL',
'sasl.mechanism': 'PLAIN',
'sasl.username': 'your_username',
'sasl.password': 'your_password',
'ssl.ca.location': '/etc/kafka/alikafka_ca.pem',
'group.id': 'cg-order',
'auto.offset.reset': 'earliest',
}
c = Consumer(conf)
c.subscribe(['order-events'])
while True:
msg = c.poll(1.0)
if msg is None:
continue
if msg.error():
print('err', msg.error())
continue
print(msg.key(), msg.value())
SSL 根证书在实例详情页下载,是一个 .pem 文件;ssl.ca.location 必须指向它的绝对路径,漏了会报 SSL handshake failed。
6.6 Java 客户端(kafka-clients 3.x)
配置文件 client.properties:
bootstrap.servers=alikafka-xxxx.sg-sg-xxx.alikafka.aliyuncs.com:9095
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="your_username" password="your_password";
ssl.truststore.location=/etc/kafka/kafka.client.truststore.jks
ssl.truststore.password=your_truststore_password
用官方自带的命令行工具直接验证(省去写代码):
kafka-console-producer.sh --bootstrap-server alikafka-xxxx.sg-sg-xxx.alikafka.aliyuncs.com:9095 \
--producer.config client.properties --topic order-events
kafka-console-consumer.sh --bootstrap-server alikafka-xxxx.sg-sg-xxx.alikafka.aliyuncs.com:9095 \
--consumer.config client.properties --topic order-events --from-beginning
客户端版本兼容 Kafka 0.11 到 3.x,不用为了上云换 SDK。Java 侧要注意 sasl.jaas.config 必须以分号结尾,这是 JAAS 语法,少了分号会静默认证失败。
6.7 把数据接出去
Kafka 存着不动没有价值,常见两个下游:实时分析接 ClickHouse(其 Kafka 表引擎可以直接消费),日志检索接 Elasticsearch。站内这两篇有完整的落库链路和数据量估算,可以接在这篇后面看:
如果只是想把数据同步到 OSS 或另一个 Kafka,官方 Connector 可以用,但要知道它的底层:Connector 的调度走 EventBridge(公测期免费),实际计算走函数计算(单独计费)。也就是说"Connector 免费"这个说法不成立,函数计算的调用费和资源费会单独出现在账单里。
七、十一个计费与稳定性坑(都来自官方文档本身)
- 按量实例只要存在就计费。 停掉生产者、停掉消费者、把 Topic 删光,账单照出。官方明确写了"无法暂停计费",唯一止血手段是释放实例。做压测务必设日历提醒去释放。
- 按峰值计费衡量的是集群处理能力,不是实际用量。 Serverless 的预留容量按小时取峰值,你半夜闲着的时段也按当时配置的容量收,不会因为没流量就归零。
- 磁盘按"峰值 × 保留时长"膨胀,30 MB/s + 72 小时就是 7.4 TB(见账单 4)。而且账号默认存储上限 30 TB,超限可能清理最旧消息——这是数据丢失风险,不是费用问题。
- 标准版不支持 SASL 和 ACL。 想让客户端带账号密码连,必须专业版。买错版本只能重建实例,Topic 和数据都要迁。
- 基础版(Basic)买 300 GB 只有 100 GB 可用,标准版和专业版才是 300 GB 可用 + 600 GB 副本免费。
- 公网接入点只有一个:9093 + SASL_SSL,强制加密和认证,同时按流量计费(香港 0.167 美元/GB)。每天 100 GB 就是 501 美元/月。
- Topic 不能跨地域使用。 北京 ECS 只能连北京的实例,新加坡业务就必须在新加坡建实例,跨地域访问只能走公网或 CEN,成本模型完全变了。
- 单条消息上限 10 MB,超限直接拒绝。大文件塞进 Kafka 是最常见的架构错误,正确做法是文件进 OSS、消息里只放引用。
- 分区创建/删除限速 900 个/10 秒,批量初始化脚本必须限速;另外单集群消费组上限 2,000。
- CPU 长期高于 85% 会影响稳定性,磁盘用到 85% 会提前删最旧消息,单节点流量超限就会触发实例级限流——流量倾斜也是触发条件,不只看总流量。
- Serverless 各地域的档位不一致。 新加坡只开了 Basic,香港和东京能开 Pro。写方案时不要假设"全地域全档位可用",以购买页当下显示为准。
八、标准版 / 专业版 / Serverless 怎么分工
| 维度 | 标准版 | 专业版 | Serverless(Basic/标准/专业) |
|---|---|---|---|
| SLA | 99.95%(多可用区 99.99%) | 99.99%,三可用区 | 99.9 / 99.95 / 99.99% |
| 部署形态 | 多可用区可选 | 独占物理集群 | 共享实例,逻辑隔离 |
| SASL / ACL | 不支持 | 支持 | 支持 |
| VPC 内 SSL | 支持 | 支持 | Basic 不支持 |
| 存储计费 | 买 300 GB 可用 300 GB + 600 GB 副本免费 | 同左 | 按实际用量 |
| 消息保留 | 自定义 | 无限(默认上限 1 年) | 自定义,Basic 上限 7 天 |
| 数据可靠性 | 9 个 9 | 11 个 9 | 9 个 9 |
| 适合谁 | 内部系统、日志汇聚、非核心链路 | 交易/订单核心链路、需要 ACL 与三可用区 | 峰值波动大、不想管磁盘的团队 |
如果需求是事务消息、定时/延时消息、严格顺序且带重试语义,那就不该选 Kafka,应该看 RocketMQ 版——Kafka 版擅长高吞吐流式管道,RocketMQ 版擅长业务消息语义。两个产品在国际站都有,别用 Kafka 硬模拟事务消息,那是最贵的反模式。
九、三档推荐配置
POC / 验证期(月预算 50 美元内):按量付费标准版 hw.2xlarge(0.470 美元/小时)+ 300 GB 高效云盘,保留 24 小时,VPC 9092 明文接入,跑完立刻释放。压测一周约 0.47×168 + 0.02×3×168 ≈ 89 美元。
成长期(峰值 30 MB/s 以内,月预算 300 美元内):Serverless 标准版预留 30 MB/s + 100 分区,约 286 美元/月(账单 3),不用预估磁盘、峰值自动弹性,团队小的时候最省心。
规模化(峰值 50 MB/s 以上,核心链路):订阅专业版 hw.6xlarge(Group 2 1,510 美元/月)+ SSD 云盘 + 三可用区 + ACL + 9095 SASL_SSL,按 130% 冗余定规格,磁盘按保留时长单独算。这个阶段省钱的杠杆已经不在实例费上,而在保留时长和是否误开了公网。
常见问题(FAQ)
开源 Kafka 客户端能直接连阿里云 Kafka 版吗?
能,兼容 Kafka 0.11 到 3.x。不需要换 SDK,只要改 bootstrap.servers 和加 security.protocol / sasl.* 那几行配置。要注意公网接入点强制 SASL_SSL,所以老的明文客户端配置必须改。
为什么我按文档填 9094 连不上?
9094 是 SASL 接入点,只在购买时勾选过 ACL、或部署后手动开启 ACL 之后才存在。没开 ACL 的实例只有 9092(明文),填 9094 会直接超时。9095 同理,需要 VPC 传输加密。
按量付费的实例,把 Topic 删掉就不收费了吗?
不收费的前提是释放实例。删 Topic、停客户端、删消费组都不影响计费,实例存在即计费,官方写明无法暂停。
20 MB/s 的规格一天能跑多少数据?
约 1.65 TB/天。30 MB/s 约 2.47 TB/天,60 MB/s 约 4.94 TB/天,120 MB/s 约 9.89 TB/天。反推磁盘时用这个数 × 保留小时数。
买了 300 GB 存储,为什么只能存 100 GB?
你买的是基础版(Basic)。基础版 300 GB 只有 100 GB 业务可用;标准版和专业版是 300 GB 全可用,再加 600 GB 副本免费。
分区数能不能随便加到几千?
技术上 ApsaraMQ 声称单 Topic 分区不限、性能不掉,但额外分区要钱(Group 2 订阅 0.46 美元/分区/月,Serverless 0.000090 美元/分区/小时)。而且开源 Kafka 分区超过 1,000 会明显掉性能,所以这里的分区是"付费资源",规划时按消费者并行度算,不要按"多建点保险"来。
Serverless 在新加坡能开专业版吗?
不一定。各地域上线的档位不同,新加坡目前只有 Basic,香港和东京可以开 Pro。下单前在购买页看该地域实际可选的档位。
消息能存多大?能当文件传输用吗?
单条上限 10 MB,超限直接拒绝。文件走 OSS,消息体里只放 object key,这是唯一正确的做法。
官方 Connector 是免费的吗?
不是全免费。Connector 的调度基于 EventBridge(公测期免费),但实际数据搬运跑在函数计算上,函数计算的调用次数和资源占用单独计费,会出现在你自己的账单里。 本文的单价、规格、限制与接入点信息取自阿里云国际站帮助中心云消息队列 Kafka 版的 Serverless billing rules、Subscription billing rules、Pay-as-you-go、Instance editions、Limits、Billing FAQ、Supported regions、Comparison among endpoints 与 Getting Started 系列页面,页面标注更新时间为 2026 年 10 月。文中所有月费、年化、平衡点与磁盘容量均由上述单价复算(每月按 730 小时),可按正文公式自行验算。促销折扣、地域调价与新规格上线会随时改变结论,实际扣费以控制台下单页与账单页当日价格为准。
⚠️ 免责声明:本文提到的配置、价格和优惠信息可能随时间变化,请以阿里云国际版官网(alibabacloud.com)的实时信息为准。本文不构成任何投资或购买建议。注册与使用前请确认当地法规合规性。
本文由 2.chengzicloud.cloud 提供,点击访问首页了解更多