问题内容
我最近读了一篇文章《大规模微服务之间共享数据》
这张图片是关于异步连接的。
如果我没记错的话,这张图中的订单页面服务似乎能够读取来自 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中文网其他相关文章!

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

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

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

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

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

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

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

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


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

WebStorm Mac版
好用的JavaScript开发工具

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

Dreamweaver CS6
视觉化网页开发工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

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