目录
问题内容
解决方法
首页 后端开发 Golang 是否可以在 Go 中创建一个既使用消息流(来自 Kafka)又读取 REST API 请求的服务?

是否可以在 Go 中创建一个既使用消息流(来自 Kafka)又读取 REST API 请求的服务?

Feb 12, 2024 pm 06:06 PM
前端应用

是否可以在 Go 中创建一个既使用消息流(来自 Kafka)又读取 REST API 请求的服务?

问题内容

我最近读了一篇文章《大规模微服务之间共享数据》

这张图片是关于异步连接的。

如果我没记错的话,这张图中的订单页面服务似乎能够读取来自 Kafka 的消息流,并且还可以读取来自前端应用程序的 REST API 请求。

所以,我想知道是否可以编写一个可以同时完成这两个任务的服务:

  • 读取来自 Kafka 的消息流
  • 读取 REST API 请求

仅在 1 个服务中,例如在 Go 中。

这是否是一个好主意?

解决方法

是的,您绝对可以编写一个从 Kafka 消费并公开 REST 端点的 Go 服务。然而,这不是一个理想的设计决策。

基于Kafka的流媒体系统允许生产者和消费者之间进行异步通信。然而,基于REST API的系统在调用者和被调用者之间进行同步通信。

同步和同步模式通信之间的可用性保证是不同的。基于 Kafka 流的系统将具有与 REST API 不同的可用性保证。在流式系统中,我们关注的是消息处理的吞吐量,而在端到端的同步通信中,延迟是主要关注点(你不想让调用者等待很长时间才能得到结果) .

如果我们将这两种类型的系统放在一个服务中,就很难了解该服务的可用性。此外,服务的异步部分或同步部分可能会在另一方的嘈杂邻居中发挥作用,从而使服务不可用。

因此,一般来说,建议将基于 REST 的 API 和 Kafka 流作为两个独立的服务。

以上是是否可以在 Go 中创建一个既使用消息流(来自 Kafka)又读取 REST API 请求的服务?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

mongodb数据库的优势有哪些 mongodb数据库的优势有哪些 Apr 07, 2024 pm 05:21 PM

MongoDB 数据库以其灵活、可扩展和高性能而闻名。它的优势包括:文档数据模型,允许以灵活和非结构化的方式存储数据。水平可扩展性,可通过分片扩展到多个服务器。查询灵活性,支持复杂的查询和聚合操作。数据复制和容错,确保数据的冗余和高可用性。JSON 支持,便于与前端应用程序集成。高性能,即使处理大量数据也能实现快速响应。开源,可定制且免费使用。

nodejs可以写前端吗 nodejs可以写前端吗 Apr 21, 2024 am 05:00 AM

是的,Node.js可用于前端开发,主要优势包括高性能、丰富的生态系统和跨平台兼容性。需要考虑的注意事项有学习曲线、工具支持和社区规模较小。

js和vue的关系 js和vue的关系 Mar 11, 2024 pm 05:21 PM

js和vue的关系:1、JS作为Web开发基石;2、Vue.js作为前端框架的崛起;3、JS与Vue的互补关系;4、JS与Vue的实践应用。

vue是前端还是后端 vue是前端还是后端 Apr 02, 2024 am 12:15 AM

Vue 是一款用于构建用户界面的前端 JavaScript 框架,主要关注客户端代码开发,其特点包括:1. 组件化:提高代码可维护性和重用性;2. 响应式数据绑定:UI 自动更新;3. 虚拟 DOM:优化渲染性能;4. 状态管理:管理应用程序共享状态。Vue 广泛应用于构建单页应用程序、移动应用程序、桌面应用程序和 Web 组件。

Golang与前端技术结合:探讨Golang如何在前端领域发挥作用 Golang与前端技术结合:探讨Golang如何在前端领域发挥作用 Mar 19, 2024 pm 06:15 PM

Golang与前端技术结合:探讨Golang如何在前端领域发挥作用,需要具体代码示例随着互联网和移动应用的快速发展,前端技术也愈发重要。而在这个领域中,Golang作为一门强大的后端编程语言,也可以发挥重要作用。本文将探讨Golang如何与前端技术结合,以及通过具体的代码示例来展示其在前端领域的潜力。Golang在前端领域的作用作为一门高效、简洁且易于学习的

vue中可以用jquery吗 vue中可以用jquery吗 May 02, 2024 pm 09:27 PM

是的,可以在 Vue 中使用 jQuery。使用 jQuery 的常见原因包括:与遗留代码集成、使用特定 jQuery 插件、处理复杂 DOM 操作。在 Vue 项目中使用 jQuery,需安装 jQuery 库并导入组件中。但建议谨慎使用,仅在绝对必要时使用,以避免与 Vue 的冲突。

怎么用webstorm启动项目 怎么用webstorm启动项目 Apr 08, 2024 pm 02:03 PM

可以使用 WebStorm 启动项目的步骤如下:打开 WebStorm IDE,打开或创建项目;右键单击项目文件并选择“运行”;在“Run/Debug Configuration”窗口中,选择要用于启动项目的启动配置;配置启动配置(可选);单击“运行”按钮以启动项目;若需要,可以使用 WebStorm 的调试工具对项目进行调试。

vue在前端开发中有什么作用 vue在前端开发中有什么作用 Apr 06, 2024 am 12:39 AM

Vue.js 是一个渐进式 JavaScript 框架,主要用于简化前端开发流程。其作用包括:声明式模板语法,提高可读性;响应式数据绑定,自动同步界面和数据;组件化开发,提升可维护性;状态管理(Vuex),简化状态管理;路由(Vue Router),管理单页应用;丰富工具和生态系统,加速开发。

See all articles