当前位置: 首页 > 知识库问答 >
问题:

事件驱动体系结构的API网关

毋宪
2023-03-14

我们正在尝试将我们的单片核心拆分为微服务,并使用消息系统(如Kafka)添加一些相互连接的新服务。

下一阶段是创建APIendpoint,以便通过Api网关在移动应用程序和微服务之间进行通信。

开发API网关向微服务传输数据或从微服务传输数据的好解决方案是什么?

  1. 使用消息系统作为请求-应答系统(将API网关上的请求转换为消息命令,等待消息系统的响应,并提供状态或必要的数据)
  2. 在必要的微服务(例如使用REST.li)上创建RESTendpoint,以通过网关发送或获取数据;根据微服务生成的事件,使用消息系统实现数据的一致性

谢谢你的建议和一些想法

共有2个答案

伯英武
2023-03-14

这取决于您采用的体系结构。如果我理解了这个问题,你已经有了kafka消息服务器的代理。我认为您可以使用架构发布/订阅相关消息。

如果在后端体系结构中,遗留系统支持SLA,那么在这种情况下,您可以使用集成所需的restendpoint。

这是如果在体系结构中使用API网关模式的好处。

谢谢。

谭骏
2023-03-14

我想说的是,在很多情况下,第二种选择听起来更合理。

事件驱动解决方案主要适用于有几个以下进程的情况,因此创建实体可以通过Restendpoint,而该实体的进程可以通过事件进行异步。

为了说明,支付流程可以如下所示:

1-)API GW-

另一方面,我的意思是第一种选择,维护一个非常解耦的系统是非常困难的,因为你需要知道所有的交换或队列。

然而,我认为在某些情况下,结合两种解决方案可能会更好。例如,您的API由流量非常高的客户端公开,并且API的任务非常明确。在这种情况下,使用MQ作为该API的缓冲区将是完美的。

 类似资料:
  • 我是事件驱动微服务的新手,也是微服务本身的新手。我正在开发的系统并不大,它处理一堆文件,然后根据调用不同服务的数据。所以在我看来,一个好主意是,不要让服务调用其他服务来完成这项工作,而是将这些消息发送到发布/订阅队列,处理它们并将它们发送到相关主题,然后每个服务将订阅其中一个或几个主题,每隔几分钟,每个服务都会提取它们订阅的消息并发挥它们的魔力。这些服务也可以通过Rest来公开,以防您想强制执行它

  • 背景: 我正在构建一个应用程序,建议的体系结构是基于微服务体系结构的事件/消息驱动的。 做事情的单一方式是,我有一个,它操作一些具有直接的命令。因此,响应相同的用户/HTTP请求是“无忧无虑的”。 问题: 用户向UI服务(有多个UI服务)发送一个,该服务向队列(Kafka/RabbitMQ/any)触发一些事件。N个服务拾取该事件/消息,并在此过程中发挥一些魔力,然后在某个时刻,相同的UI服务应拾

  • Ceph 独一无二地用统一的系统提供了对象、块、和文件存储功能,它可靠性高、管理简便、并且是自由软件。 Ceph 的强大足以改变贵公司的 IT 基础架构、和管理海量数据的能力。Ceph 可提供极大的伸缩性——供成千用户访问 PB 乃至 EB 级的数据。 Ceph 节点以普通硬件和智能守护进程作为支撑点, Ceph 存储集群组织起了大量节点,它们之间靠相互通讯来复制数据、并动态地重分布数据。 Cep

  • 本文向大家介绍hdfs的体系结构相关面试题,主要包含被问及hdfs的体系结构时的应答技巧和注意事项,需要的朋友参考一下 解答: hdfs有namenode、secondraynamenode、datanode组成。 为n+1模式 namenode负责管理datanode和记录元数据 secondraynamenode负责合并日志 datanode负责存储数据

  • 冯·诺依曼体系结构 计算机处理的数据和指令一律用二进制数表示 顺序执行程序 计算机运行过程中,把要执行的程序和处理的数据首先存入主存储器(内存),计算机执行程序时,将自动地并按顺序从主存储器中取出指令一条一条地执行,这一概念称作顺序执行程序。 计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成。 数据的机内表示 二进制表示 机器数 由于计算机中符号和数字一样,都必须用二进制数串来表

  • 我正在开发具有微服务架构的后端。我对该架构不熟悉,目前我在一个容器中开发了3个微服务(RESTful Web服务,带有Spring Boot)。我想实现OAuth2和JWT Rest Prot和网关。使用授权服务器和资源服务器实现网关是正确的吗?我在架构上做错了什么吗? 谢谢你的回复