繁体   English   中英

使用 Apache Kafka 进行实时消息传递

[英]Using Apache Kafka for real time messaging

我们已经在 Spring MVC 中开发了一个在线考试系统,以及用于离线监考的实时网络摄像头图像捕获和上传,现在客户需要在线或实时监考解决方案,在线监考人员将看到在线候选人的实时图像并基于(如果他/她觉得有任何不当行为)可以向在线候选人发送警告消息。

要从在线监考人员向候选人发送警告消息,我们正在考虑使用 Apache kafka,因此来自在线监考服务器(Spring Boot)的消息将 go 发送到 kakfa 服务器,每个考试服务器(Spring MVC)将使用该消息。 到目前为止,我们很清楚,但是在考试服务器收到消息后,如何在不刷新或从浏览器到考试服务器的 REST 调用的情况下向特定考生显示该消息? 还是有其他优雅的方法可以做到这一点?

在此处输入图像描述

如果您需要在用户屏幕上立即弹出消息,您可能希望 go 设置 WebSockets。 使用 WebSockets,考生的浏览器将建立并保持与考试服务器的连接,考试服务器将能够将消息推送到浏览器。

这篇文章解释得很好: https://medium.com/swlh/websockets-with-spring-part-1-http-and-websocket-36c69df1c2ee

另见https://www.baeldung.com/websockets-spring

正如您在图表中明确指出的那样,将 Kafka 直接暴露到 Internet 并不是 go 的方法,而是需要一个中介来分发消息数据。 这通常是消息代理,或者理想情况下是专为 Internet 数据传输而设计的实时消息服务。 请参阅下面的简化图。

卡夫卡和经纪人

为了使您的堆栈保持简单、安全和可扩展,我强烈建议您考虑在您的客户端和 Kafka 之间使用一个面向 Internet 的中间消息代理。

如何通过 WebSockets 向面向 Internet 的客户端发送 stream Kafka 消息”中深入介绍了整个主题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM