搜索
首页后端开发Golang是否可以在 Go 中创建一个既使用消息流(来自 Kafka)又读取 REST API 请求的服务?

是否可以在 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中文网其他相关文章!

声明
本文转载于:stackoverflow。如有侵权,请联系admin@php.cn删除
mongodb数据库的优势有哪些mongodb数据库的优势有哪些Apr 07, 2024 pm 05:21 PM

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

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

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

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

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

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的实践应用。

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

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

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

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

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

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

NEXTAUTH_SECRET 变量与用于生成 JWT 令牌的后端机密相同吗?NEXTAUTH_SECRET 变量与用于生成 JWT 令牌的后端机密相同吗?Feb 08, 2024 pm 11:09 PM

我正在使用NextJS编写前端应用程序,并使用nextauth进行身份验证(电子邮件、密码登录)。我的后端是用GoLang编写的不同代码库,因此当用户登录时,它将向Golang后端端点发送请求,并返回JWT令牌,该令牌生成如下所示:config:=config.GetConfig()atClaims:=jwt.MapClaims{}atClaims["authorized"]=trueatClaims["id"]=userIdatClaims["email"

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。