云服务器内容精选

  • Kafka访问协议说明 Kafka当前支持四种协议类型的访问:PLAINTEXT、SSL、SASL_PLAINTEXT、SASL_SSL。 Kafka服务启动时,默认会启动PLAINTEXT和SASL_PLAINTEXT两种协议类型的访问监测。可通过设置Kafka服务配置“ssl.mode.enable”为“true”,来启动SSL和SASL_SSL两种协议类型的访问监测。下表是四种协议类型的简单说明: 可以参考修改集群服务配置参数进入Kafka全部配置页面,查看或配置参数。 协议类型 说明 默认端口 PLAINTEXT 支持无认证的明文访问。 获取参数“port”的值,默认为9092 SASL_PLAINTEXT 支持Kerberos认证的明文访问。 获取参数“sasl.port”的值,默认为21007 SSL 支持无认证的SSL加密访问。 获取参数“ssl.port”的值,默认为9093 SASL_SSL 支持Kerberos认证的SSL加密访问。 获取参数“sasl-ssl.port”的值,默认为21009
  • 针对不同的Topic访问场景,Kafka中API使用说明 场景一:访问设置了ACL的Topic 使用的API 用户属组 客户端参数 服务端参数 访问的端口 API 用户需满足以下条件之一即可: 加入System_administrator角色 属于kafkaadmin组 属于kafkasuperuser组 被授权的kafka组的用户 security.inter.broker.protocol=SASL_PLAINTEXT sasl.kerberos.service.name = kafka - sasl.port(默认21007) security.protocol=SASL_SSL sasl.kerberos.service.name = kafka “ssl.mode.enable”配置为true sasl-ssl.port(默认21009) 场景二:访问未设置ACL的Topic 使用的API 用户属组 客户端参数 服务端参数 访问的端口 API 用户需满足以下条件之一: 加入System_administrator角色 属于kafkaadmin组 属于kafkasuperuser组 security.protocol=SASL_PLAINTEXT sasl.kerberos.service.name = kafka - sasl.port(默认21007) 用户属于kafka组 “allow.everyone.if.no.acl.found”配置为true 说明: 普通集群下不涉及服务端参数“allow.everyone.if.no.acl.found”的修改 sasl.port(默认21007) 用户需满足以下条件之一: 加入System_administrator角色 属于kafkaadmin组 kafkasuperuser组用户 security.protocol=SASL_SSL sasl.kerberos.service.name = kafka “ssl.mode.enable”配置为“true” sasl-ssl.port(默认21009) 用户属于kafka组 “allow.everyone.if.no.acl.found”配置为“true” “ssl.mode.enable”配置为“true” sasl-ssl.port(默认21009) - security.protocol=PLAINTEXT “allow.everyone.if.no.acl.found”配置为“true” port(默认9092) - security.protocol=SSL “allow.everyone.if.no.acl.found”配置为“true” “ssl.mode.enable”配置为“true” ssl.port(默认9063)
  • Kafka API简单说明 Producer API 指org.apache.kafka.clients.producer.KafkaProducer中定义的接口,在使用“kafka-console-producer.sh”时,默认使用此API。 Consumer API 指org.apache.kafka.clients.consumer.KafkaConsumer中定义的接口,在使用“kafka-console-consumer.sh”时,默认会调用此API。 MRS 3.x后,Kafka不支持旧Producer API和旧Consumer API。
  • 配置建议 请根据以下业务场景对可靠性和性能要求进行评估,采用合理参数配置。 对于价值数据,这两种场景下建议Kafka数据目录磁盘配置raid1或者raid5,从而提高单个磁盘故障情况下数据可靠性。 参数配置项均为Topic级别可修改的参数,默认采用服务级配置。 可针对不同Topic可靠性要求对Topic进行单独配置。以root用户登录Kafka客户端节点,在客户端安装目录下配置Topic名称为test的可靠性参数命令: cd Kafka/kafka/bin kafka-topics.sh --zookeeper 192.168.1.205:2181/kafka --alter --topic test --config unclean.leader.election.enable=false --config min.insync.replicas=2 其中192.168.1.205为ZooKeeper业务IP地址。 参数配置项为服务级配置需要重启Kafka,建议在变更窗口做服务级配置修改。
  • 对系统的影响 配置高可用、高性能的影响: 配置高可用、高性能模式后,数据可靠性会降低。在磁盘故障、节点故障等场景下存在数据丢失风险。 配置高可靠性的影响: 性能降低: 在生产数据时,配置了高可靠参数ack=-1之后,需要多个副本均写入成功之后才认为是写入成功。这样会导致单条消息时延增加,客户端处理能力下降。具体性能以现场实际测试数据为准。 可用性降低: 不允许不在ISR中的副本被选举为Leader。如果Leader下线时,其他副本均不在ISR列表中,那么该分区将保持不可用,直到Leader节点恢复。当分区的一个副本所在节点故障时,无法满足最小写入成功的副本数,那么将会导致业务写入失败。 参数配置项为服务级配置需要重启Kafka,建议在变更窗口做服务级配置修改。
  • 针对不同的Topic访问场景,Kafka中API使用说明 场景一:访问设置了ACL的Topic 使用的API 用户属组 客户端参数 服务端参数 访问的端口 API 用户需满足以下条件之一即可: 加入System_administrator角色 属于kafkaadmin组 属于kafkasuperuser组 被授权的kafka组的用户 security.inter.broker.protocol=SASL_PLAINTEXT sasl.kerberos.service.name = kafka - sasl.port(默认21007) security.protocol=SASL_SSL sasl.kerberos.service.name = kafka “ssl.mode.enable”配置为true sasl-ssl.port(默认21009) 场景二:访问未设置ACL的Topic 使用的API 用户属组 客户端参数 服务端参数 访问的端口 API 用户需满足以下条件之一: 加入System_administrator角色 属于kafkaadmin组 属于kafkasuperuser组 security.protocol=SASL_PLAINTEXT sasl.kerberos.service.name = kafka - sasl.port(默认21007) 用户属于kafka组 “allow.everyone.if.no.acl.found”配置为true 说明: 普通集群下不涉及服务端参数“allow.everyone.if.no.acl.found”的修改 sasl.port(默认21007) 用户需满足以下条件之一: 加入System_administrator角色 属于kafkaadmin组 kafkasuperuser组用户 security.protocol=SASL_SSL sasl.kerberos.service.name = kafka “ssl.mode.enable”配置为“true” sasl-ssl.port(默认21009) 用户属于kafka组 “allow.everyone.if.no.acl.found”配置为“true” “ssl.mode.enable”配置为“true” sasl-ssl.port(默认21009) - security.protocol=PLAINTEXT “allow.everyone.if.no.acl.found”配置为“true” port(默认9092) - security.protocol=SSL “allow.everyone.if.no.acl.found”配置为“true” “ssl.mode.enable”配置为“true” ssl.port(默认9063)
  • Kafka访问协议说明 请参考修改集群服务配置参数查看或配置参数。 Kafka当前支持四种协议类型的访问:PLAINTEXT、SSL、SASL_PLAINTEXT、SASL_SSL。 Kafka服务启动时,默认会启动PLAINTEXT和SASL_PLAINTEXT两种协议类型的安全认证。可通过设置Kafka服务配置“ssl.mode.enable”为“true”,来启动SSL和SASL_SSL两种协议类型的安全认证。下表是四种协议类型的简单说明: 协议类型 说明 默认端口 PLAINTEXT 支持无认证的明文访问 获取参数“port”的值,默认为9092 SASL_PLAINTEXT 支持Kerberos认证的明文访问 获取参数“sasl.port”的值,默认为21007 SSL 支持无认证的SSL加密访问 获取参数“ssl.port”的值,默认为9093 SASL_SSL 支持Kerberos认证的SSL加密访问 获取参数“sasl-ssl.port”的值,默认为21009
  • Kafka API简单说明 Producer API 指org.apache.kafka.clients.producer.KafkaProducer中定义的接口,在使用“kafka-console-producer.sh”时,默认使用此API。 Consumer API 指org.apache.kafka.clients.consumer.KafkaConsumer中定义的接口,在使用“kafka-console-consumer.sh”时,默认会调用此API。 MRS 3.x后,Kafka不支持旧Producer API和旧Consumer API。
  • 对系统的影响 配置高可用、高性能的影响: 配置高可用、高性能模式后,数据可靠性会降低。在磁盘故障、节点故障等场景下存在数据丢失风险。 配置高可靠性的影响: 性能降低: 在生产数据时,配置了高可靠参数ack=-1之后,需要多个副本均写入成功之后才认为是写入成功。这样会导致单条消息时延增加,客户端处理能力下降。具体性能以现场实际测试数据为准。 可用性降低: 不允许不在ISR中的副本被选举为Leader。如果Leader下线时,其他副本均不在ISR列表中,那么该分区将保持不可用,直到Leader节点恢复。当分区的一个副本所在节点故障时,无法满足最小写入成功的副本数,那么将会导致业务写入失败。 参数配置项为服务级配置需要重启Kafka,建议在变更窗口做服务级配置修改。
  • 配置建议 请根据以下业务场景对可靠性和性能要求进行评估,采用合理参数配置。 对于价值数据,这两种场景下建议Kafka数据目录磁盘配置raid1或者raid5,从而提高单个磁盘故障情况下数据可靠性。 参数配置项均为Topic级别可修改的参数,默认采用服务级配置。 可针对不同Topic可靠性要求对Topic进行单独配置。以root用户登录Kafka客户端节点,在客户端安装目录下配置Topic名称为test的可靠性参数命令: cd Kafka/kafka/bin kafka-topics.sh --zookeeper 192.168.1.205:2181/kafka --alter --topic test --config unclean.leader.election.enable=false --config min.insync.replicas=2 其中192.168.1.205为ZooKeeper业务IP地址。 参数配置项为服务级配置需要重启Kafka,建议在变更窗口做服务级配置修改。