kafka的应用场景和测试策略

dzf
2022年04月06日 · 阅读 154
Kafka是分布式流处理平台,也是一种消息传递的中间件,更适用于大量数据的消息传递,由消息生产者、消息消费者、broker消息节点和topic消息类型组合成消息传递过程,通过生产者基于一种topic消息类型发布消息,基于broker存储消息,消费者再根据对应的topic进行消息的消费。
具体的过程下图简单的描述一下:
Kafka特性:每一次进行消息的拉取,拉取完都会清空对应的数据,所以在kafka中数据都是一次性的
一.Kafka 的应用场景
我们项目主要在一下几个场景用到了kafka:
- 底层服务间的消息传递
当用户下单后,订单服务会生成一个订单,并把订单创建的事件(如订单ID、用户ID等)作为消息发送到kafka的”订单创建“主题,相关的的支付服务订阅”订单创建“主题,接收到订单创建事件后,触发支付流程。其中,”订单创建“主题作为消息存储的空间存储消息,订单服务和支付服务之间就可以进行消息的传递了。 - 通过kafka替换http协议实现解耦
如果订单服务直接通过http协议调用支付服务,当订单服务的接口字段发生变化,比如增加了地理位置字段,这可能影响到支付服务的接口兼容性,因为支付服务还没有准备好处理这个新字段,如果支付服务依赖于订单服务提供的特定字段,那么任何订单服务的变更都可能导致支付服务中断,这增加了系统的耦合度,如果换成kafka的话,支付服务就可以根据自身的业务逻辑和处理能力,逐步适应这些变更,而不会因为订单服务的即时变更而立即受到影响,从而实现服务间的解耦。 - 日志处理
在微服务架构中,各个服务会生成大量的日志数据,需要集中处理和分析,如果通过http服务会占用大量的网络资源和时间,导致性能瓶颈,但是引入kafka后可以异步的收集和传输日志数据,提高性能和可靠性,每个服务将产生的日志信息发送到”日志“主题,日志处理系统订阅”日志“主题,收集日志数据,并进行实时分析。
二.采用的测试策略
我们主要围绕kafka的功能点制定测试策略,测试策略主要有以下三点:
- 验证topic的正确性
- 验证生产者服务消息发布的过程
- 验证消费者服务消息消费的过程
其中,若生产者生产的消息能被消费者正常消费,那么就可以验证topic的正确性了。
正向的用例demo:
- 用例名:kafka的消息消费
- 前置步骤:请求生产者服务的对外接口,构建消息数据A
- 操作步骤:请求消费者服务的消费接口
- 期望值:请求消费者服务的相关查询结果查询消费情况,找到结果关键字是否==数据A
逆向的用例demo:
- 用例名:kafka的消息消费(未生产数据)
- 前置步骤:未请求生产者服务的对外接口
- 操作步骤:请求消费者服务的消费接口
- 期望值:未出现loading情况
通过深入理解 Kafka 的应用场景并实施全面的测试策略,企业能够更好地利用 Kafka 的优势,构建稳定、高效的大数据处理架构,为业务的持续发展提供有力支撑。
分类:
无
标签:
无