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

事件驱动的微服务体系结构

庞修贤
2023-03-14

我是事件驱动微服务的新手,也是微服务本身的新手。我正在开发的系统并不大,它处理一堆文件,然后根据调用不同服务的数据。所以在我看来,一个好主意是,不要让服务调用其他服务来完成这项工作,而是将这些消息发送到发布/订阅队列,处理它们并将它们发送到相关主题,然后每个服务将订阅其中一个或几个主题,每隔几分钟,每个服务都会提取它们订阅的消息并发挥它们的魔力。这些服务也可以通过Rest来公开,以防您想强制执行它们而无需等待。
这样的设计最好的方法是什么?我错过了什么?有没有这样的东西可以用Spring实现?(我认为每个微服务都可以是一个Spring启动应用程序)。我计划使用GCP的Pub/Sub,但是我听说过Apache Kafka,但是我不知道Kafka如何帮助Pub/Sub不能帮助的地方,或者Pub/Sub如何与它集成。

共有1个答案

曾高杰
2023-03-14

与GCP的合流合作伙伴,如果您想在GCP上运行托管Kafka,您可以使用合流云。

是的,您可以通过Kafka Connect使用PubSub和Kafka-https://github.com/GoogleCloudPlatform/pubsub/tree/master/kafka-connector

如果你想要一堆不同的微服务,投资学习服务网格是个好主意,你有几个https://layer5.io/列出的选项,如果你愿意,库伯内特斯可以广泛帮助管理这些服务。

Spring Cloud还有一个基于Netflix Eureka的服务发现组件https://spring.io/guides/gs/service-registration-and-discovery/另外,Spring Cloud Netflix是一系列Netflix工具,对微服务很有用(Netflix是Kafka的大用户,如果你不知道的话)

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

  • 我最近开始使用Node.js,我必须构建一个应该使用多个Express.js服务的体系结构。其中一些服务必须位于一台服务器上,另一台则位于其他服务器上。我想构建一个基础服务(像API网关),但是我不知道在这个网关和微服务之间,或者在两个微服务之间进行通信的合适方式是什么。 目前我正在研究一个基于此的解决方案:

  • 我们正在尝试将我们的单片核心拆分为微服务,并使用消息系统(如Kafka)添加一些相互连接的新服务。 下一阶段是创建APIendpoint,以便通过Api网关在移动应用程序和微服务之间进行通信。 开发API网关向微服务传输数据或从微服务传输数据的好解决方案是什么? 使用消息系统作为请求-应答系统(将API网关上的请求转换为消息命令,等待消息系统的响应,并提供状态或必要的数据) 在必要的微服务(例如使

  • 我有一个微服务体系结构,它的日志必须发送到远程Kafka主题。在它旁边,本主题的使用者将把日志发送到麋鹿堆栈(另一个团队) 我想要一个专用的微服务(fwk proxy elasticsearch),其职责是收集其他人的日志,并将其发送到远程Kafka主题。 将从我的微服务聚合的所有日志分派到fwk-代理-弹性搜索微服务的最佳协议是什么? 我希望这个模式不会重复远程Kafka主题的安全配置。我想把它

  • 总而言之,我们有: 产品类别: 产品ID、产品名称 订单类别: 订单ID、产品ID、用户ID、订单日期 这些方法中的任何一种可以被认为是最佳实践吗?还是有不同的解决方案?

  • 我经常听说,在微服务架构中,对于每一个微服务,我们都必须创建单独的数据库。 但是,如果我必须在不同的数据库中维护外键约束,这是不可能的。就像我在身份验证微服务中有一个用户表,我想在我的目录服务中使用它(用户表中的用户 ID 列) 那么如何解决呢。 感谢提前