云服务器内容精选
-
计费示例 以包年/包月计费模式为例,假设您于2023/03/08 15:50:04在“华北-北京四”区域购买了一个包年/包月Kafka实例(规格:kafka.2u4g.cluster*3,总存储空间:超高I/O 300GB),计费资源包括实例费用(代理规格和代理数量),以及存储空间费用(超高I/O 300GB)。购买时长为一个月,并在到期前手动续费1个月,则: 第一个计费周期为:2023/03/08 15:50:04 ~ 2023/04/08 23:59:59 第二个计费周期为:2023/04/08 23:59:59 ~ 2023/05/08 23:59:59 图1给出了上述示例配置的费用计算过程。图中价格仅供参考,实际计算请以分布式消息服务Kafka版价格详情中的价格为准。 图1 包年/包月Kafka实例费用计算示例(华北-北京四区域) 按需计费模式下,各计费项的计费示例请参见计费示例。
-
计费说明 分布式消息服务Kafka版的计费项由实例费用和存储空间费用组成。具体内容如表1所示。 如您需要快速了解分布式消息服务Kafka版的具体价格,请参见分布式消息服务Kafka版价格详情。 表1 分布式消息服务Kafka版计费项 计费项 计费项说明 适用的计费模式 计费公式 实例费用 计费因子:代理规格和代理数量 如果开启Smart Connect,实例需要另外收取用于Smart Connect的代理费用。 说明: 实例费用在账单中显示的产品名称为“分布式消息服务专享版”。 包年/包月、按需计费 实例规格单价 * 购买时长 实例规格单价请参见分布式消息服务Kafka版价格详情中的“实例价格”。 存储空间费用 计费因子:云硬盘类型、容量 说明: 存储空间费用在账单中显示的产品名称为“分布式消息服务物理多租存储”。 包年/包月、按需计费 云硬盘单价 * 购买时长 云硬盘单价请参见分布式消息服务Kafka版价格详情中的“存储价格”。
-
Kafka扩容/缩容会影响业务吗? 扩容/缩容Kafka实例的影响如表1所示。 表1 变更实例规格的影响 变更配置类型 影响 基准带宽/代理数量 扩容基准带宽/代理数量不会影响原来的代理,业务也不受影响。 扩容基准带宽/代理数量时,系统会根据当前磁盘大小进行相应比例的存储空间扩容。例如扩容前实例的代理数为3,每个代理的磁盘大小为200GB,扩容后实例的代理数为10,此时代理的磁盘大小依旧为200GB,但是总磁盘大小为2000GB。 新创建的Topic才会分布在新代理上,原有Topic还分布在原有代理上,造成分区分布不均匀。通过修改分区平衡,实现将原有Topic分区的副本迁移到新代理上。 存储空间 扩容存储空间有次数限制,只能扩容20次。 扩容存储空间不会影响业务。 代理规格 若Topic为单副本,扩容/缩容期间无法对该Topic生产消息或消费消息,会造成业务中断。 若Topic为多副本,扩容/缩容代理规格不会造成服务中断,但可能会导致消费的分区消息发生乱序,请谨慎评估业务影响,建议您在业务低峰期扩容/缩容。 扩容/缩容代理规格的过程中,节点滚动重启造成分区Leader切换,会发生秒级连接闪断,在用户网络环境稳定的前提下,Leader切换时长一般为1分钟以内。多副本的Topic需要在生产客户端配置重试机制,方法如下: 生产客户端为Kafka开源客户端时,检查是否配置retries参数,建议此参数值设置为3~5。 生产客户端为Flink客户端时,检查是否配置重启策略,配置重启策略可以参考如下代码。 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.setRestartStrategy(RestartStrategies.fixedDelayRestart(3, Time.seconds(20))); 若实例已创建的分区数总和大于待缩容规格的实例分区数上限,此时无法缩容。不同规格配置的实例分区数上限不同,具体请参见产品规格。 例如:kafka.4u8g.cluster*3的实例,已创建800个分区,您想把此实例的规格缩容为kafka.2u4g.cluster*3,kafka.2u4g.cluster*3规格的实例分区数上限为750,此时无法缩容。 变更代理规格的时长和代理数量有关,单个代理的变更时长一般在5~10分钟,代理数量越多,规格变更时间越长。 父主题: 实例规格变更问题
-
消费者消费Topic失败,提示没有权限? 问题现象:同一个消费组内有多个消费者,为每个消费者授权不同的Topic访问权限,某一消费者消费其中一个Topic时,提示消费失败,报错信息如下:Not authorized to access topics。 问题原因:消费组的leader在进行分区分配时,不会考虑某一个消费者的授权和订阅信息,只会根据消费组整体的订阅情况进行分区分配,此种情况下可能会给消费者分配到未授权的Topic,从而导致了上述问题的出现。 例如:消费组中有消费者A、B、C,A订阅并授权Topic 0、Topic 1、Topic 2,B订阅并授权Topic 3、Topic 4、Topic 5,C订阅并授权Topic 6、Topic 7、Topic 8,假设以上Topic都只有一个分区,消费组的leader会根据策略进行分区分配,分配的结果可能变成:A消费Topic 0、Topic 3、Topic 6,B消费Topic 1、Topic 4、Topic 7,C消费Topic 2、Topic 5、Topic 8。此时A对Topic 3和Topic 6是没有授权的,因此会出现“Not authorized to access topics”的报错。 图1 消费者访问权限 处理方法: 如果业务要求所有消费者在同一个消费组内,即group.id相同,解决方法:为所有消费者授权相同的Topic访问权限。 如果消费者不需要在同一个消费组内,解决方法:修改group.id,让每个消费者单独在一个消费组内。 父主题: Topic和分区问题
-
步骤四:修改客户端配置文件 开启SSL双向认证后,需要在客户端的“consumer.properties”和“producer.properties”文件中,分别修改服务端证书配置,并增加客户端证书配置。 security.protocol=SSL ssl.truststore.location=/opt/kafka_2.12-2.7.2/config/client.truststore.jks ssl.truststore.password=dms@kafka ssl.endpoint.identification.algorithm= #增加以下的客户端证书配置 ssl.keystore.location=/var/private/ssl/kafka/client.keystore.jks ssl.keystore.password=txxx3 ssl.key.password=txxx3 security.protocol配置证书协议类型,开启SSL双向认证时,必须设置为SSL。 ssl.truststore.location配置为client.truststore.jks证书的存放路径。 ssl.truststore.password为client.truststore.jks的密码。 ssl.endpoint.identification.algorithm为证书 域名 校验开关,为空则表示关闭。这里需要保持关闭状态,必须设置为空。 ssl.keystore.location配置为client.keystore.jks证书的存放路径。 ssl.keystore.password配置为client.keystore.jks的密码。 ssl.key.password配置为client.keystore.jks的密码。
-
约束与限制 如果“allow.everyone.if.no.acl.found”设置为“true”,且Topic未授权任何用户,此时所有的用户都可以订阅/发布此Topic。如果Topic已授权某一个或多个用户,此时只有授权的用户可以订阅/发布此Topic,其他未授权的用户不能订阅/发布此Topic。“allow.everyone.if.no.acl.found”在配置参数中修改。 如果“allow.everyone.if.no.acl.found”设置为“false”,只有授权的用户可以订阅/发布此Topic,其他未授权的用户不能订阅/发布此Topic。“allow.everyone.if.no.acl.found”在配置参数中修改。 如果Topic同时设置了“默认用户”权限和单个用户权限,取两者的并集。 单机实例不支持设置Topic权限。
-
维度 Key Value kafka_instance_id Kafka实例 kafka_broker Kafka实例节点 kafka_topics Kafka实例主题 kafka_partitions Kafka实例分区 kafka_groups-partitions Kafka实例分区的消费组 kafka_groups_topics Kafka实例队列的消费组 kafka_groups Kafka实例的消费组 connector_task Kafka实例的Smart Connect任务
-
Smart Connect监控指标 仅集群实例支持Smart Connect监控指标。 表5 Smart Connect支持的监控指标 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) kafka_wait_synchronize_data 待同步Kafka数据量 Kafka任务的待同步数据量。 单位:Count ≥ 0 Kafka实例的Smart Connect任务 1分钟 kafka_synchronize_rate Kafka每分钟同步数据量 Kafka任务每分钟同步的数据量。 单位:Count ≥ 0 Kafka实例的Smart Connect任务 1分钟 task_status 任务状态 当前任务状态。 0:任务异常 1:任务正常 Kafka实例的Smart Connect任务 1分钟 message_delay 消息时延 消息到达源端的时间与到达目标端的时间之差。 单位:ms ≥ 0 Kafka实例的Smart Connect任务 1分钟 使用Smart Connect监控指标时,请注意如下几点: Kafka双向数据复制的Smart Connect任务在监控中会被拆分为2个任务,分别为“Smart Connect任务名_source_0”和“Smart Connect任务名_source_1”。 如果Topic中的消息在进行下一次数据同步前,已经全部老化,此时实际是没有待同步的Kafka数据,但是Kafka数据同步监控指标使用的是包含老化数据的offset值,“待同步Kafka数据量”会显示老化的消息数。
-
消费组监控指标 表4 消费组支持的监控指标 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) messages_consumed 分区已消费消息数 该指标用于统计当前消费组已经消费的消息个数。 单位:Count 在“消费组”页签,“主题”为指定的Topic名称,“监控类型”为“分区监控”时,才包含该指标。 ≥ 0 Kafka实例的消费组 1分钟 messages_remained 分区可消费消息数 该指标用于统计消费组可消费的消息个数。 单位:Count 在“消费组”页签,“主题”为指定的Topic名称,“监控类型”为“分区监控”时,才包含该指标。 ≥ 0 Kafka实例的消费组 1分钟 topic_messages_remained 队列可消费消息数 该指标用于统计消费组指定队列可以消费的消息个数。 单位:个 在“消费组”页签,“主题”为指定的Topic名称,“监控类型”为“基本监控”时,才包含该指标。 0~(263-1) Kafka实例的消费组 1分钟 topic_messages_consumed 队列已消费消息数 该指标用于统计消费组指定队列当前已经消费的消息数。 单位:个 在“消费组”页签,“主题”为指定的Topic名称,“监控类型”为“基本监控”时,才包含该指标。 0~(263-1) Kafka实例的消费组 1分钟 consumer_messages_remained 消息堆积数(消费组可消费消息数) 该指标用于统计消费组剩余可以消费的消息个数。 单位:个 在“消费组”页签,“主题”为“全部队列”时,才包含该指标。 0~(263-1) Kafka实例的消费组 1分钟 consumer_messages_consumed 消费组已消费消息数 该指标用于统计消费组当前已经消费的消息数。 单位:个 在“消费组”页签,“主题”为“全部队列”时,才包含该指标。 0~(263-1) Kafka实例的消费组 1分钟 messages_consumed_per_min 分区消费速率 统计消费组指定队列分区每分钟的消费数。 单位:个/分钟 在“消费组”页签,“主题”为指定的Topic名称,“监控类型”为“分区监控”时,才包含该指标。 部分存量实例不支持此监控,具体以控制台为准。 0~30000000 Kafka实例的消费组 1分钟 topic_messages_consumed_per_min 队列消费速率 统计消费组指定队列每分钟的消费数。 单位:个/分钟 在“消费组”页签,“主题”为指定的Topic名称,“监控类型”为“基本监控”时,才包含该指标。 部分存量实例不支持此监控,具体以控制台为准。 0~30000000 Kafka实例的消费组 1分钟 consumer_messages_consumed_per_min 消费组消费速率 统计消费组每分钟的消费数。 单位:个/分钟 在“消费组”页签,“主题”为“全部Topic”时,才包含该指标。 部分存量实例不支持此监控,具体以控制台为准。 0~30000000 Kafka实例的消费组 1分钟
-
实例监控指标 表1 实例支持的监控指标 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) current_partitions 分区数 该指标用于统计Kafka实例中已经使用的分区数量。 单位:个 0~100000 Kafka实例 1分钟 current_topics 主题数 该指标用于统计Kafka实例中已经创建的主题数量。 单位:个 0~100000 Kafka实例 1分钟 group_msgs 消息堆积数 该指标用于统计Kafka实例中所有消费组中总堆积消息数。 单位:个 0~1000000000 Kafka实例 1分钟 instance_bytes_in_rate 生产流量 统计实例中每秒生产的字节数。 单位:Byte/s、KiB/s、MiB/s、GiB/s、TiB/s、PiB/s 部分存量实例不支持此监控,具体以控制台为准。 0~1000000 Kafka实例 1分钟 instance_bytes_out_rate 消费流量 统计实例中每秒消费的字节数。 单位:Byte/s、KiB/s、MiB/s、GiB/s、TiB/s、PiB/s 部分存量实例不支持此监控,具体以控制台为准。 0~1000000 Kafka实例 1分钟 current_partitions_usage 分区使用率 该指标用于统计分区使用率。 单位:% 部分存量实例不支持此监控,具体以控制台为准。 0~100% Kafka实例 1分钟
-
主题监控指标 表3 主题支持的监控指标 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) topic_bytes_in_rate 生产流量 该指标用于统计每秒生产的字节数。 单位:Byte/s、KB/s、MB/s、GB/s 在“主题”页签,当“监控类型”为“基本监控”时,才包含该指标。 0~500000000 Kafka实例队列 1分钟 topic_bytes_out_rate 消费流量 该指标用于统计每秒消费的字节数。 单位:Byte/s、KB/s、MB/s、GB/s 在“主题”页签,当“监控类型”为“基本监控”时,才包含该指标。 0~500000000 Kafka实例队列 1分钟 topic_data_size 队列数据容量 该指标用于统计队列当前的消息数据大小。 单位:Byte、KB、MB、GB、TB、PB 在“主题”页签,当“监控类型”为“基本监控”时,才包含该指标。 0~5000000000000 Kafka实例队列 1分钟 topic_messages 队列消息总数 该指标用于统计队列当前的消息总数。 单位:Count 在“主题”页签,当“监控类型”为“基本监控”时,才包含该指标。 ≥ 0 Kafka实例队列 1分钟 topic_messages_in_rate 消息生产速率 该指标用于统计每秒生产的消息数量。 单位:Count/s 在“主题”页签,当“监控类型”为“基本监控”时,才包含该指标。 0~500000 Kafka实例队列 1分钟 partition_messages 分区消息数 该指标用于统计分区中当前的消息个数。 单位:Count 在“主题”页签,当“监控类型”为“分区监控”时,才包含该指标。 ≥ 0 Kafka实例队列 1分钟 produced_messages 生产消息数 该指标用于统计目前生产的消息总数。 单位:Count 在“主题”页签,当“监控类型”为“分区监控”时,才包含该指标。 ≥ 0 Kafka实例队列 1分钟
-
约束与限制 Kafka单机/集群实例对Topic的总分区数设置了上限,当Topic的总分区数达到上限后,用户就无法继续创建Topic。不同规格配置的Topic总分区数不同,具体请参考Kafka集群实例和Kafka单机实例。 2023年5月17日及以后创建的实例不提供Kafka Manager功能,不支持在Kafka Manager中创建Topic。 已开启密文接入的实例,“allow.everyone.if.no.acl.found”设置为“false”时,无法通过客户端创建Topic。 Topic名称开头包含特殊字符,例如“#”号时,监控数据无法展示。 由于Kafka内核限制,无法区分句点和下划线,因此无法创建名称中只有句点和下划线不同的Topic。例如,已创建Topic_1,在新创建Topic.1时,报错如下:Topic 'topic.1' collides with existing topics: topic_1。
-
约束与限制 分区数只支持增加,不支持减少。 2023年5月17日及以后创建的实例不提供Kafka Manager功能,不支持在Kafka Manager中修改Topic分区数。 Kafka单机/集群实例对Topic的总分区数设置了上限,当Topic的总分区数达到上限后,用户就无法继续创建Topic。不同规格配置的Topic总分区数不同,具体请参考Kafka集群实例和Kafka单机实例。 已开启密文接入的实例,“allow.everyone.if.no.acl.found”设置为“false”时,无法通过客户端修改Topic分区数。
-
约束与限制 若“auto.create.groups.enable”设置为“true”,当消费组的状态为“EMPTY”且从未提交过offset,系统将在十分钟后自动删除该消费组。 若“auto.create.groups.enable”设置为“false”,系统不会自动删除消费组。如果需要删除消费组,需要您手动删除。 若消费组从未提交过offset,当Kafka实例重启后,该消费组会被删除。 删除消费组会导致消费进度丢失,造成重新消费或重复消费等情况。
-
producer使用建议 同步复制客户端需要配合使用:acks=all 配置发送失败重试:retries=3 发送优化:对于时延敏感的信息,设置linger.ms=0。对于时延不敏感的信息,设置linger.ms在100~1000之间。 生产端的JVM内存要足够,避免内存不足导致发送阻塞。 时间戳设置为与当地时间一致,避免时间戳为未来时间导致消息无法老化。 尽量复用producer,不要频繁创建producer。当producer开启幂等时(生产者客户端3.0及之后的版本默认开启幂等),生产消息会在服务端创建生产者状态对象,若频繁创建producer,会导致服务端创建大量生产者状态对象后无法及时回收,服务端内存占用飙升,进而导致服务端性能急剧下降。如果不需要使用幂等功能,请将“enable.idempotence”设置为“false”。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格