当kafka参与微服务架构时,如何实施合同测试?
我目前正在开发一个项目,我们在微服务架构中实现了kafka。 如果您使用pact-jvm成功创建mS到kafka主题交互的合同测试用例吗?
我的实现是microservice1向REST客户端发布消息,然后REST客户端将消息发布到Kafka主题。 microservice2使用GET方法从Kafka主题中检索消息。
Pact-JVM支持Message Pacts,它封装了通过某种机制(通常是消息队列)消耗的消息(单向)。 我们的想法是测试消费者代码可以通过消费者测试消费消息,然后validation提供者是否生成了适当的消息。 测试中未使用实际的消息队列。
这最初是为了对通过Kafka消息队列进行通信的微服务进行合同测试而开发的。
测试分为两部分,就像Request-Response Pact测试一样,但Consumer在消费者协定测试期间读取消息,如果成功,则写入pact文件。 然后调用提供程序代码以生成消息,并将其与pact文件中的内容进行比较。
Pact-JVM文档的相关部分是:
- Gradle插件
- Maven插件
- JUnit示例
- Kafka – 使用高级消费者实现延迟队列
- Kafka:编写自定义序列化程序
- Eclipse scala.object无法解析
- 避免apache kafka使用者中重复消息的有效策略
- kafka.consumer.SimpleConsumer:由于套接字错误而重新连接:java.nio.channels.ClosedChannelException
- 如何在Kafka中使用多个消费者?
- SpringXD和Spring Integration:每隔X分钟从kafka主题中读取一遍,然后发送到另一个主题
- Kafka Java Producer与kerberos
- Spring引导application.yml中的Spring Kafka SSL设置