华为云用户手册

  • 为什么可用区不能选择2个? 如果您需要提高Kafka实例的可靠性,在创建实例时,建议选择3个或以上的可用区,不支持选择2个可用区。原因如下: 每个Kafka实例包含3个Zookeeper节点,Zookeeper集群用来管理Kafka实例的配置,如果Zookeeper集群出现问题,Kafka实例将无法正常运行。至少2个Zookeeper节点正常运行,才能保证Zookeeper集群正常运行。 假设选择2个可用区,可用区1有1个Zookeeper节点,可用区2有2个Zookeeper节点。如果可用区1故障,则Kafka实例能正常使用;如果可用区2故障,则不能正常使用。Kafka实例可用的场景只有50%,所以不支持选择2个可用区。 父主题: 实例问题
  • 如何选择Kafka实例存储容量阈值策略? 支持以下两种策略: 生产受限策略 该策略场景下一旦磁盘使用达到容量阈值95%,会导致后续生产失败,但保留了当前磁盘中的数据,直至数据自然老化(Kafka原有的老化机制,数据默认保留3天)。该场景适用于对数据不能丢的业务场景,但是会导致生产业务失败。 自动删除策略 该策略场景下磁盘使用到达容量阈值95%后,依旧可以正常生产和消费消息,但是会删除最早的10%的消息,以保证磁盘容量充足。该场景优先保障业务不中断,数据可能会丢失。 以上两种策略的需要基于业务对数据和业务的可靠性来进行选择,只能作为极端场景下的一个种处理方式。建议业务购买时保证有充足的磁盘容量,避免磁盘的使用达到容量阈值。 父主题: 实例问题
  • 扩容/缩容过程中生产消息失败 可能原因:在扩容/缩容代理规格的过程中,代理采用滚动重启的方式进行实例变更。在重启过程中,分区Leader会进行切换,此时生产客户端的元数据缓存中保存的分区Leader为旧分区Leader ID,仍然会向旧分区Leader发送消息,导致生产消息失败。 解决方法:在生产客户端配置重试机制。建议设置retries=Integer.MAX_VALUE 父主题: 实例规格变更问题
  • 消息超过老化时间,消息仍存在的原因 问题现象:消息超过设置的老化时间(如果Topic已经设置了老化时间,此时“配置参数”中的log.retention.hours值将不对此Topic生效。仅在Topic中未设置老化时间时,“配置参数”中的log.retention.hours值才会对此Topic生效。),消息仍存在。 可能原因1:Topic的每个分区都是由多个大小相同的segment文件组成,每个segment文件的大小为500MB,当segment文件存储的消息大小到达500MB后,才会新建下一个segment文件。Kafka删除消息是删除segment文件,而不是删除一条消息。Kafka要求至少保留一个segment文件用来存储消息,如果正在使用的segment文件中包含超过老化时间的消息,由于此时segment文件不会被删除,所以超过老化时间的消息也不会被删除。 处理方法:等待segment文件被使用完,或者删除超过老化时间的消息所在的Topic。 可能原因2:Topic中存在一条create time为未来时间的消息(例如当前时间为1月1日,create time设置成了2月1日),此消息在72小时后,并不会被老化,导致在此消息后创建的其他消息都不会被老化。 处理方法:删除create time为未来时间的消息所在的Topic。 父主题: 消息问题
  • 如果消息组中没有在线的消费者(如empty状态),是否14天后会自动被删除? 消息组中没有在线的消费者(如empty状态),14天后是否会自动被删除与offsets.retention.minutes参数有关: 2020年6月16日前创建的实例,offsets.retention.minutes默认为2147483646分钟,约1491308天,消费组14天后不会被删除。 2020年6月16日以及之后创建的实例,offsets.retention.minutes默认为20160分钟,即14天,消费组14天后会自动被删除。 原因如下:Kafka通过offsets.retention.minutes参数控制消费组中offsets保留时间,在此时间内如果没有提交offset,offsets将会被删除。Kafka判定消息组中没有在线的消费者(如empty状态),且没有offsets时,将会删除此消费组。 父主题: 消费组问题
  • 客户端删除消费组后,在Kafka Manager中仍可以看到此消费组? 客户端删除消费组后,此消费组已经被删除了。在Kafka Manager中仍可以看到此消费组,是因为Kafka Manager存在缓存。 通过以下任意一种方法解决此问题: 重启Kafka Manager。 Kafka Manager只显示14天内有消费记录的消费组,如果您不想重启Kafka Manager,可以等待14天后Kafka Manager自动清除此消费组。 父主题: 消费组问题
  • Kafka体验版使用说明 Kafka体验版实例规格为EXP,为单代理实例,不支持Kafka Manager、Smart Connect和多AZ等功能。 Kafka体验版实例只适用体验和业务测试场景,无法保证性能和可靠性。如果需要在生产环境使用Kafka实例,建议购买按需或包年包月的Kafka实例。 Kafka体验版仅在华南-广州的区域支持,其他区域暂不支持。 如果您想要了解其他规格的Kafka实例,请参见产品规格。
  • 如何查看堆积消息数? 通过以下任意一种方法,查看堆积消息数。 在Kafka控制台的“消费组管理”页面,单击待查看堆积消息的消费组名称,进入消费组详情页。在“消费进度”页签,查看消费组中每个Topic的总堆积数。具体步骤,请参考查看消费者信息。 在Kafka控制台的“监控”页面的“消费组”页签中,“消费组”选择待查看堆积消息数的消费组名称,“队列”选择“全部队列”,“消费组可消费消息数”表示此消费组中所有Topic的堆积消息数之和。查看监控数据的具体步骤,请参考查看监控数据。 在云监控页面的“消费组”页签中,“消费组”选择待查看堆积消息数的消费组名称,“队列”选择“全部队列”,“消费组可消费消息数”表示此消费组中所有Topic的堆积消息数之和。查看监控数据的具体步骤,请参考查看监控数据。 在Kafka客户端,在“/{命令行工具所在目录}/kafka_{version}/bin/”目录下,通过kafka-consumer-groups.sh --bootstrap-server {kafka连接地址} --describe --group {消费组}命令查看消费组中每个Topic的堆积消息数。“LAG”表示每个Topic的总堆积数。 图1 查看每个Topic的总堆积数 如果Kafka实例开启SASL认证,则以上命令还需要增加SASL认证的“consumer.properties”配置文件参数: --command-config {SASL认证的consumer.properties配置文件},“consumer.properties”配置文件参考开启SASL认证的Kafka命令行连接说明。 父主题: 消息问题
  • 使用内网通过同一个VPC访问实例 客户端和实例是否使用相同的安全组? 是,如果保留了创建安全组后,系统默认添加的入方向“允许安全组内的弹性云服务器彼此通信”规则和出方向“放通全部流量”规则,则无需添加其他规则。否则,请添加表1所示规则。 表1 安全组规则 方向 协议 端口 源地址 说明 入方向 TCP 9092 0.0.0.0/0 使用内网通过同一个VPC访问Kafka实例(关闭SSL加密)。 入方向 TCP 9093 0.0.0.0/0 使用内网通过同一个VPC访问Kafka实例(开启SSL加密)。 否,执行2。 参考如下配置安全组规则。 假设客户端和Kafka实例的安全组分别为:sg-53d4、Default_All。以下规则,远端可使用安全组,也可以使用具体的IP地址,本章节以安全组为例介绍。 客户端所在安全组需要增加如下规则,以保证客户端能正常访问Kafka实例。 表2 安全组规则 方向 策略 协议端口 目的地址 出方向 允许 全部 Default_All 图1 配置客户端安全组 Kafka实例所在安全组需要增加如下规则,以保证能被客户端访问。 表3 安全组规则 方向 策略 协议端口 源地址 入方向 允许 全部 sg-53d4 图2 配置Kafka实例安全组
  • 如何选择Kafka实例的存储空间? 存储空间主要是指用于存储消息(包括副本中的消息)、日志和元数据所需要的空间。选择存储空间时,需要选择磁盘类型和磁盘大小。更多磁盘信息,请参考如何选择磁盘类型 假设业务存储数据保留天数内磁盘大小为100GB,则磁盘容量最少为100GB*副本数 + 预留磁盘大小100GB。Kafka集群中,每个Kafka节点会使用33GB的磁盘作为日志和Zookeeper数据的存储,因而实际可用存储会小于购买存储。 其中,副本数在创建Topic时可以选择,默认为3副本存储。如果开启了Kafka自动创建Topic功能,自动创建的Topic默认为3副本,副本数可以通过“配置参数”页签中的“default.replication.factor”修改。 父主题: 实例问题
  • Kafka支持哪些加密套件? 由于安全问题,2021年3月20日前以及当天创建的实例,支持的加密套件为TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256和TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256。2021年3月20日后创建的实例,支持的加密套件为TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256。 父主题: 实例问题
  • 消费者消费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和分区问题
  • 为什么Console页面上,消息查询查不到消息? 可能原因1:消息已被老化。 解决方法:修改老化时间。 可能原因2:消息的createTime时间戳不对。 Console页面是根据时间查询的,所以查不到。时间戳是由客户端生成,不同客户端有不同的处理策略,有的客户端默认值会是0或者-1,则查询不到消息。 解决方法:检查客户端消息的createTime设置是否正确。 可能原因3:磁盘容量超过95%,且“容量阈值策略”设置为“自动删除”。 “容量阈值策略”设置为“自动删除”,表示磁盘容量达到95%时,系统会删除最早的10%的消息,以保证磁盘容量充足。当磁盘容量超过95%时,未到达老化时间的消息也会被删除,所以可能会导致部分消息查询不到。 解决方法:修改容量阈值策略或扩大磁盘容量。“容量阈值策略”设置为“生产受限”,表示一旦磁盘使用达到容量阈值95%,会导致后续生产失败,但保留了当前磁盘中的数据,直至数据自然老化。该场景适用于对数据不能丢的业务场景,但是会导致生产业务失败。 父主题: 消息问题
  • Yikes! Insufficient partition balance when creating topic : projectman_project_enterprise_project Try again. 问题现象: 在Kafka Manager中无法创建topic,报错:Yikes! Insufficient partition balance when creating topic : projectman_project_enterprise_project Try again. 问题原因:Topic分区超过限制,不能继续创建Topic。 处理方法:建议扩大实例规格,实例规格增加,分区数也会相应增加。 父主题: Kafka Manager问题
  • 解决方法/排查思路 场景一:未能及时发送心跳请求 解决方法:建议在消费者客户端将session.timeout.ms值设置为heartbeat.interval.ms值3倍以上。 场景二:消费者消费时间间隔过长 排查思路: 检查单条消息的处理时间是多久,处理max.poll.records条消息会不会超过max.poll.interval.ms时间。 消息处理流程是否有网络行为,如写数据库、调用后端API等,在发生Rebalance的场景下后端是否正常。 解决方法:建议在消费者客户端将max.poll.records值减小。
  • Kafka实例是否支持查看单个Topic占用磁盘空间? 支持。通过以下任意一种方法,查看单个Topic占用磁盘空间大小。 在Kafka实例名称后,单击,跳转到云监控页面。在“队列”页签中,“队列”选择待查看磁盘空间大小的Topic名称,“监控类型”选择“基本监控”,查看“队列数据容量”,该指标表示该队列当前的消息数据大小。 单击Kafka实例名称,进入实例详情页。在左侧导航栏单击“监控”,进入监控页面。在“主题”页签中,“主题”选择待查看磁盘空间大小的Topic名称,“监控类型”选择“基本监控”,查看“队列数据容量”,该指标表示该队列当前的消息数据大小。 父主题: Topic和分区问题
  • 服务韧性 DMS for Kafka提供了3级可靠性架构,通过跨AZ容灾、AZ内实例容灾、实例数据多副本技术方案,保障服务的持久性和可靠性。 表1 DMS for Kafka可靠性架构 可靠性方案 简要说明 跨AZ容灾 DMS for Kafka提供跨AZ类型实例,支持跨AZ容灾,当一个AZ异常时,不影响Kafka实例持续提供服务。 AZ内实例容灾 同一个AZ内,Kafka实例通过副本冗余方式实现实例容灾,当检测到leader副本故障后,快速完成副本选主,保障Kafka实例持续提供服务。 数据容灾 通过支持数据多副本方式实现数据容灾。 父主题: 安全
  • 审计与日志 云审计服务(Cloud Trace Service,简称CTS),是华为云安全解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。 用户开通云审计服务并创建和配置追踪器后,CTS可记录DMS for Kafka的管理事件用于审计。 CTS的详细介绍和开通配置方法,请参见CTS快速入门。 CTS支持追踪的DMS for Kafka管理事件列表,请参见云审计服务支持的DMS for Kafka操作列表。 图1 云审计服务 父主题: 安全
  • 数据保护技术 DMS for Kafka通过多种数据保护手段和特性,保障DMS for Kafka的数据安全可靠。 表1 DMS for Kafka的数据保护手段和特性 数据保护手段 简要说明 详细介绍 容灾和多活 根据对数据与服务的不同可靠性要求,您可以选择在单可用区内(单机房)部署Kafka实例,或跨可用区(同城灾备)部署,也可以通过数据同步工具(MirrorMaker)进行跨实例的数据同步。 在单可用区或多可用区中部署实例 使用MirrorMaker跨实例数据同步 副本冗余 副本通过数据同步的方式保持数据一致,当网络发生异常或节点故障时,通过冗余副本自动故障切换,并且故障恢复后会从leader副本进行数据同步,保持数据一致性。 创建多副本的Topic 数据持久化 业务系统日常运行中可能出现一些小概率的异常事件。部分可靠性要求非常高的业务系统,除了要求实例高可用,还要求数据安全、可恢复,以便在实例发生异常后能够使用备份数据进行恢复,保障业务正常运行。 - 父主题: 安全
  • 变更配置 Kafka实例的基准带宽支持变更配置:您可以根据业务需求增加您的实例规格,规格变更后即刻按照新的实例规格收费。 Kafka实例的代理个数支持变更配置:您可以根据业务需求增加代理个数,扩容后即刻按照新的实例规格收费。 Kafka存储空间支持变更配置:您可以根据业务需求增加您的存储空间,扩容后即刻按照新的存储空间计费。您需要注意的是存储空间只允许扩容,不能缩容。您每次扩容的最小容量为100GB。
  • 计费项 华为云分布式消息服务Kafka版对您选择的Kafka实例和Kafka的磁盘存储空间收费。 表1 Kafka消息队列计费项 计费项 计费说明 实例费用 对您选择的实例计费,按选择的ECS规格和代理个数,提供不同性能的实例规格。购买实例之前请先对业务规模进行评估,再根据其它参数,选择适合的ECS规格和代理个数,单个代理性能规格如表2所示。 实例提供包年包月和按需(小时)计费方式。 开启Smart Connect后,实例需要另外收取用于Smart Connect的代理费用。 例如:规格为kafka.4u8g.cluster的实例,会另外创建2个规格为kafka.4u8g的代理,用于Smart Connect,所以需要收取相应代理费用。 存储空间费用 对您选择的存储空间计费(每个实例规格您都可以选择普通IO,高IO,超高IO三种不同的云硬盘类型以满足您的业务需求)。 存储可选择不同副本,如:实际实例容量为500GB,3副本,则应购买500GB*3=1500GB存储容量。 存储空间范围见表2,步长100G。 存储空间提供包年包月和按需(小时)计费方式。 表2 Kafka实例规格 实例规格 代理个数范围 单个代理TPS 单个代理分区上限 单个代理Consumer Group上限 单个代理客户端总连接数上限 存储空间范围 kafka.2u4g.cluster.small 3~30 20000 100 15 2000 300GB~300000GB kafka.2u4g.cluster 3~30 30000 250 20 2000 300GB~300000GB kafka.4u8g.cluster 3~30 100000 500 100 4000 300GB~600000GB kafka.8u16g.cluster 3~50 150000 1000 150 4000 300GB~1500000GB kafka.12u24g.cluster 3~50 200000 1500 200 4000 300GB~1500000GB kafka.16u32g.cluster 3~50 250000 2000 200 4000 300GB~1500000GB
  • 新老规格对应关系 2种Kafka实例规格的对应关系如表3所示。 表3 Kafka实例新老规格对应关系 老规格 分区数上限(老规格) TPS(老规格) 对应的新规格 带宽(新规格) 分区数上限(新规格) TPS(新规格) 100MB/s(c3.large.2 * 3) 300 10万 kafka.2u4g.cluster * 3 225MB/s 750 10万 300MB/s(c3.xlarge.2 * 5) 900 30万 kafka.4u8g.cluster * 3 450MB/s 1500 30万 600MB/s(c3.2xlarge.2 * 5) 1800 60万 kafka.8u16g.cluster * 4 700MB/s 4000 60万 1200MB/s(c3.2xlarge.2 * 10) 1800 120万 kafka.8u16g.cluster * 8 1400MB/s 8000 120万 例如:客户原先有4个节点(规格为8U16G),3个副本,总分区数为10000-15000,每个节点的写流量为720Mb,读流量为7.2Gb,复制流量为90MB*2,如果使用华为云Kafka实例,预计需要什么样的规格?费用多少? 总的写流量:720Mb*3*4=1080MB/s,总的读流量:7.2Gb*4=3686MB/s,总的复制流量:90MB*2*4=720MB/s,总的读写流量:1080+3686+720=5486MB/s。考虑到流量预留的影响,建议读写流量按照总流量的80%估算,即总流量需要5486/80%=6857.5MB。 Kafka实例单代理(超高I/O磁盘)最大支持350MB的流量,需要的代理个数=6857.5/350=20个。Kafka实例规格为kafka.8u16g.cluster*20。kafka.8u16g.cluster单代理最大支持1000分区,客户需要10000-15000的总分区数,通过流量算出的kafka.8u16g.cluster*20规格满足要求。 kafka.8u16g.cluster单代理最小存储空间为800GB,总的存储空间为800*20=16000GB。 使用Kafka实例的费用:48600元(实例费用)+16000元(存储空间费用)=64600元/月。
  • 异步通信 将业务中属于非核心或不重要的流程部分,使用消息异步通知的方式发给目标系统,这样主业务流程无需同步等待其他系统的处理结果,从而达到系统快速响应的目的。 如网站的用户注册场景,在用户注册成功后,还需要发送注册邮件与注册短信,这两个流程使用Kafka消息服务通知邮件发送系统与短信发送系统,从而提升注册流程的响应速度。 图1 串行发送注册邮件与短信流程 图2 借助消息队列异步发送注册邮件与短信流程
  • 日志同步 在大型业务系统设计中,为了快速定位问题,全链路追踪日志,以及故障及时预警监控,通常需要将各系统应用的日志集中分析处理。 Kafka设计初衷就是为了应对大量日志传输场景,应用通过异步方式将日志消息同步到消息服务,再通过其他组件对日志做实时或离线分析,也可用于关键日志信息收集进行应用监控。 日志同步主要有三个关键部分:日志采集客户端,Kafka消息队列以及后端的日志处理应用。 日志采集客户端,负责用户各类应用服务的日志数据采集,以消息方式将日志“批量”、“异步”发送Kafka客户端。 Kafka客户端批量提交和压缩消息,对应用服务的性能影响非常小。 Kafka将日志存储在消息文件中,提供持久化。 日志处理应用,如Logstash,订阅并消费Kafka中的日志消息,最终供文件搜索服务检索日志,或者由Kafka将消息传递给Hadoop等其他大数据应用系统化存储与分析。 图4 日志同步示意图 上图中Logstash、ElasticSearch分别为日志分析和检索的开源工具,Hadoop表示大数据分析系统。
  • 错峰流控与流量削峰 在电子商务系统或大型网站中,上下游系统处理能力存在差异,处理能力高的上游系统的突发流量可能会对处理能力低的某些下游系统造成冲击,需要提高系统的可用性的同时降低系统实现的复杂性。电商大促销等流量洪流突然来袭时,可以通过队列服务堆积缓存订单等信息,在下游系统有能力处理消息的时候再处理,避免下游订阅系统因突发流量崩溃。消息队列提供亿级消息堆积能力,3天的默认保留时长,消息消费系统可以错峰进行消息处理。 另外,在商品秒杀、抢购等流量短时间内暴增场景中,为了防止后端应用被压垮,可在前后端系统间使用Kafka消息队列传递请求。 图3 消息队列应对秒杀大流量场景
  • 副本(Replica) 消息的备份存储。为了确保消息可靠,Kafka创建Topic时,每个分区会分别从代理中选择1个或多个,对消息进行冗余存储。 Topic的所有消息分布式存储在各个分区上,分区在每个副本存储一份全量数据,副本之间的消息数据保持同步,任何一个副本不可用,数据都不会丢失。 每个分区都随机挑选一个副本作为Leader,该分区所有消息的生产与消费都在Leader副本上完成,消息从Leader副本复制到其他副本(Follower)。
  • 方式2:在Kafka客户端上创建 仅在Kafka客户端版本为2.2以上时,支持通过kafka-topics.sh创建Topic,以及管理Topic的各类参数。 Topic名称开头包含特殊字符,例如#号“#”时,监控数据无法展示。 未开启SASL的Kafka专享版实例,在“/{命令行工具所在目录}/kafka_{version}/bin/”目录下,通过以下命令创建Topic。 ./kafka-topics.sh --create --topic {topic_name} --bootstrap-server {broker_ip}:{port} --partitions {partition_num} --replication-factor {replication_num} 已开启SASL的Kafka专享版实例,通过以下步骤创建Topic。 (可选)如果已经设置了SSL证书配置,请跳过此步骤。否则请执行以下操作。 在Kafka客户端的“/config”目录中创建“ssl-user-config.properties”文件,参考使用SASL证书连接增加SSL证书配置。 在“/{命令行工具所在目录}/kafka_{version}/bin/”目录下,通过以下命令创建Topic。 ./kafka-topics.sh --create --topic {topic_name} --bootstrap-server {broker_ip}:{port} --partitions {partition_num} --replication-factor {replication_num} --command-config ./config/ssl-user-config.properties
  • 虚拟私有云 虚拟私有云(Virtual Private Cloud,以下简称VPC)为Kafka实例提供一个隔离的、用户自主配置和管理的虚拟网络环境。 在创建Kafka实例前,确保已存在可用的虚拟私有云和子网。 创建方法,请参考创建虚拟私有云和子网。如果您已有虚拟私有云和子网,可重复使用,不需要多次创建。 在创建VPC和子网时应注意如下要求: 创建的VPC与使用的Kafka服务应在相同的区域。 创建VPC和子网时,配置参数建议使用默认配置。 在创建Kafka实例前,确保已存在可用的安全组。 创建方法,请参考创建安全组。如果您已有安全组,可重复使用,不需要多次创建。 在创建安全组时应注意如下要求: 创建安全组时,“模板”选择“自定义”。 使用Kafka实例必须添加表1所示安全组规则,其他规则请根据实际需要添加。 表1 安全组规则 方向 协议 端口 源地址 说明 入方向 TCP 9094 0.0.0.0/0 通过公网访问Kafka实例(关闭SSL加密)。 入方向 TCP 9092 0.0.0.0/0 使用内网通过同一个VPC访问Kafka实例(关闭SSL加密)。 入方向 TCP 9095 0.0.0.0/0 通过公网访问Kafka实例(开启SSL加密)。 入方向 TCP 9093 0.0.0.0/0 使用内网通过同一个VPC访问Kafka实例(开启SSL加密)。 入方向 TCP 9011 198.19.128.0/17 通过VPC终端节点实现跨VPC访问Kafka实例(开启SSL加密和关闭SSL加密都适用)。 入方向 TCP 9011 0.0.0.0/0 使用DNAT访问Kafka实例(开启SSL加密和关闭SSL加密都适用)。 安全组创建后,系统默认添加入方向“允许安全组内的弹性云服务器彼此通信”规则和出方向“放通全部流量”规则。此时使用内网通过同一个VPC访问Kafka实例,无需添加表1的规则。
  • 前提条件 已配置正确的安全组,安全组规则请参考表1。 已获取连接Kafka实例的地址。 如果是使用内网通过同一个VPC访问,实例端口为9093,实例连接地址获取如下图。 图1 使用内网通过同一个VPC访问Kafka实例的连接地址(实例已开启SASL) 如果是公网访问,实例端口为9095,实例连接地址获取如下图。 图2 公网访问Kafka实例的连接地址(实例已开启SASL) 已获取开启的SASL认证机制。 在Kafka实例详情页的“连接信息”区域,查看“开启的SASL认证机制”。如果SCRAM-SHA-512和PLAIN都开启了,根据实际情况选择其中任意一种配置连接。如果页面未显示“开启的SASL认证机制”,默认使用PLAIN机制。 图3 开启的SASL认证机制 已获取启用的安全协议。 在Kafka实例详情页的“连接信息”区域,查看“启用的安全协议”。如果页面未显示“启用的安全协议”,默认使用SASL_SSL协议。 如果Kafka实例未开启自动创建Topic功能,获取Topic名称。 在实例的Topic管理页签中获取(可选)步骤三:创建Topic中创建的Topic名称。 图4 查看Topic名称 已购买ECS,并完成JDK安装、环境变量配置以及Kafka开源客户端下载,具体操作请参考准备环境。
  • 前提条件 已配置正确的安全组,安全组规则请参考表1。 已获取连接Kafka实例的地址。 如果是使用内网通过同一个VPC访问,实例端口为9092,实例连接地址获取如下图。 图1 使用内网通过同一个VPC访问Kafka实例的连接地址(实例未开启SASL) 如果是公网访问,实例端口为9094,实例连接地址获取如下图。 图2 公网访问Kafka实例的连接地址(实例未开启SASL) 如果Kafka实例未开启自动创建Topic功能,获取Topic名称。 在实例的Topic管理页签中获取(可选)步骤三:创建Topic中创建的Topic名称。 图3 查看Topic名称 已购买ECS,并完成JDK安装、环境变量配置以及Kafka开源客户端下载,具体操作请参考准备环境。
共100000条