前言:
一、什么是kafka
Kafka 传统定义是一个分布式的基于发布/订阅模式的消息队列,主要应用在大数据实时处理场景,它可以处理消费者在网站、应用之间实时数据的传递。
二、kafka中的核心术语
Topic(主题): 逻辑概念,一般由1-n个partitions组成
Broker:Kafka集群中的一个节点,负责存储和处理消息。
Producer(生产者): 消息的生产方
Consumer(消费者): 消息的消费方
Partition: 实际消息存储单位
三、在Python中使用Kafka的demo示例
①安装Kafka-Python包
在Python中使用Kafka,需要安装Kafka-Python包。可以使用pip命令进行安装。
pip install kafka-python
②生产者demo
在Kafka中,生产者负责将消息发送到Kafka集群。Python中使用Kafka-Python包可以轻松实现生产者功能。下面是一个生产者的示例代码:
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers=['localhost:9092'])
producer.send('test', b'Hello, Kafka!')
在上面的代码中,我们首先导入了KafkaProducer类,然后创建了一个生产者对象,并指定了Kafka集群的地址。接着,我们调用send()方法将消息发送到名为“test”的主题中。
③消费者demo
在Kafka中,消费者负责从Kafka集群中消费消息。Python中使用Kafka-Python包可以轻松实现消费者功能。下面是一个消费者的示例代码:
from kafka import KafkaConsumer
consumer = KafkaConsumer('test', bootstrap_servers=['localhost:9092'])
for message in consumer:
print(message.value)
在上面的代码中,我们首先导入了KafkaConsumer类,然后创建了一个消费者对象,并指定了Kafka集群的地址和要消费的主题。接着,我们使用for循环遍历消费者返回的消息,并打印出消息的内容。
kafka测试策略关注点(基于接口):
校验消息生产的正确性:
通过模拟实际的业务场景,发送具有特定业务逻辑的消息,确保生产者正确生成并发送消息,基于业务场景提供的接口校验消息生产的正确性
校验消息消费的正确性:
验证消费者是否能正确处理正常以及异常情况下的消息。
校验不同topic处理的结果:
确认生产者和消费者对于不同topic的操作是否保持一致,不同topic处理的结果,生成者和消费者的topic是否对齐。
校验数据一致性和可靠性:
确保消息在生产、存储和消费过程中的一致性和可靠性,包括消息不丢失、不重复和按照预期的顺序被消费。
故障恢复测试:
模拟节点故障或网络问题,验证Kafka集群的故障转移机制是否能够正常工作,以及系统从故障中恢复的速度和效率。
压力测试:
通过模拟大量并发请求来测试Kafka在高负载情况下的性能表现。这包括系统的响应时间、处理速度以及系统资源使用情况,如CPU和内存消耗。
灾难恢复和备份测试:
验证Kafka集群的备份和恢复策略是否有效,确保在发生灾难性事件时能够迅速恢复服务。