Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring云契约-混合http和消息传递_Spring_Spring Boot_Spring Cloud_Spring Cloud Contract - Fatal编程技术网

Spring云契约-混合http和消息传递

Spring云契约-混合http和消息传递,spring,spring-boot,spring-cloud,spring-cloud-contract,Spring,Spring Boot,Spring Cloud,Spring Cloud Contract,我想开始使用SCC,但我找不到如何实现我们的一个特定案例。服务以Kafka消息的形式接收输入,并需要使用基于该输入消息的有效负载调用外部rest api。反过来说,当我们收到rest调用时,结果应该是卡夫卡消息。SCC对此有任何支持吗?当然有。您的应用程序是消息的消费者和生产者。它还有一个控制器,并使用另一个服务的http控制器。您要创建以下合同 契约1-在kafka消息的生产者上验证它是否可以向代理发送消息(我们称之为服务a)。服务B将重用该消息的存根,以检查它是否可以使用来自kafka的消息

我想开始使用SCC,但我找不到如何实现我们的一个特定案例。服务以Kafka消息的形式接收输入,并需要使用基于该输入消息的有效负载调用外部rest api。反过来说,当我们收到rest调用时,结果应该是卡夫卡消息。SCC对此有任何支持吗?

当然有。您的应用程序是消息的消费者和生产者。它还有一个控制器,并使用另一个服务的http控制器。您要创建以下合同

契约1-在kafka消息的生产者上验证它是否可以向代理发送消息(我们称之为服务a)。服务B将重用该消息的存根,以检查它是否可以使用来自kafka的消息

契约2-在http端点的生产者上,该端点将在收到消息时被调用(服务C)

合同3-关于http端点的生产者,该端点将被称为“另一种方式”(服务B)

合同4——卡夫卡“另一个方向”信息的制作人


需要记住的重要一点是,您要单独测试这些。这意味着,如果您从kafka收到一条消息,然后想要对其进行http调用,那么您可以模拟消息侦听器调用的所有内容。基于http的通信也是如此。如果您的控制器使用应用程序服务,您将对其进行模拟。

谢谢您的回答,它消除了一些混乱。然而,我仍然有一个问题,从文档或示例中我不清楚如何在api请求导致Kafka消息的情况下签订合同。你能给我一些见解吗?所以在我提到的这个案例中,据我所知,我有两份合同。第一个用于api调用(请求-响应),第二个用于Kafka输出消息,该消息将使用triggeredBy()的某种模拟方法是的,这正是您要做的