Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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
如果使用SpringMVC,如何从请求-响应设计过渡到发布-订阅体系结构?_Spring_Spring Mvc_Spring Messaging - Fatal编程技术网

如果使用SpringMVC,如何从请求-响应设计过渡到发布-订阅体系结构?

如果使用SpringMVC,如何从请求-响应设计过渡到发布-订阅体系结构?,spring,spring-mvc,spring-messaging,Spring,Spring Mvc,Spring Messaging,我提出这个问题是因为我阅读了一些在线资源,这些资源声称事件驱动架构似乎比使用REST更好 所以我尝试重新设计基于Rest的应用程序来实现一些消息传递系统,但我不确定它如何与MVC一起工作 当每个服务使用Rest API进行通信时,结构如下: HTML视图->MVC控制器->控制器发送请求服务A->服务A返回控制器响应->HTML视图 但如果我尝试实现发布-订阅(我使用的是SpringCloudStream和Kafka),我不明白我的“正确”用户如何能够收到响应。因为我认为当有两个不同的用户时:

我提出这个问题是因为我阅读了一些在线资源,这些资源声称事件驱动架构似乎比使用REST更好

所以我尝试重新设计基于Rest的应用程序来实现一些消息传递系统,但我不确定它如何与MVC一起工作

当每个服务使用Rest API进行通信时,结构如下:

HTML视图->MVC控制器->控制器发送请求服务A->服务A返回控制器响应->HTML视图

但如果我尝试实现发布-订阅(我使用的是SpringCloudStream和Kafka),我不明白我的“正确”用户如何能够收到响应。因为我认为当有两个不同的用户时:

请看图片,我不确定在我的控制器收到来自主题的消息后,如何路由到正确的用户。 我尝试使用“consumer group”,但它似乎不是解决方案,因为它只能指定处理消息的“服务实例”,但在这里,我的MVC应用程序是服务实例,但具有不同的连接(不同的用户)


我已经尽力解释我的问题,我的英语不好,如果你需要我表达更多,请告诉我。

一个并不排除另一个。当应用程序的其余部分使用发布-订阅时,您的web部件仍然可以是请求-响应。这不是一个全有或全无的解决方案,你实际上应该混合搭配。如果你真的想在web内容中使用发布/订阅,你应该使用SSE或WebSockets。嗨,M.Deinum,你能给我一些指导,什么时候使用基于Rest API更好,什么时候使用发布/订阅更好?如上所述,使用一个并不排除另一个。一个并不排除另一个。当应用程序的其余部分使用发布-订阅时,您的web部件仍然可以是请求-响应。这不是一个全有或全无的解决方案,你实际上应该混合搭配。如果你真的想在web内容中使用发布/订阅,你应该使用SSE或WebSockets。嗨,M.Deinum,你能给我一些指导,什么时候使用Rest API更好,什么时候使用发布/订阅更好?如上所述,使用一个并不排除使用另一个。