当kafka参与微服务架构时,如何实施合同测试?

时间:2017-07-03 11:23:29

标签: java jvm apache-kafka microservices pact

我目前正在开发一个项目,我们在微服务架构中实现了kafka。如果您成功创建了mS到kafka主题交互的合同测试用例,请使用pact-jvm?

我的实现是microservice1向REST客户端发布消息,然后REST客户端将消息发布到Kafka主题。 microservice2使用GET方法从Kafka主题中检索消息。

1 个答案:

答案 0 :(得分:15)

Pact-JVM支持Message Pacts,它封装了某种机制(通常是消息队列)消耗的消息(单向)。我们的想法是测试消费者代码可以通过消费者测试消费消息,然后验证提供者是否生成了适当的消息。测试中未使用实际的消息队列。

Contract over a message queue

这最初是为了对通过Kafka消息队列进行通信的微服务进行合同测试而开发的。

测试分为两部分,就像Request-Response Pact测试一样,但Consumer在消费者协定测试期间读取消息,如果成功写入pact文件。然后调用提供程序代码以生成消息,并将其与pact文件中的内容进行比较。

enter image description here

Pact-JVM文档的相关部分是: