相关疑难解决方法(0)

微服务——以最小的内存/时间损失从其他微服务中检索特定用户的相关数据的最佳实践

我正在尝试使用Lumen / Laravel Passport创建微服务架构。

我有多个 dockerized 服务,它们都在不同的 VM 中作为单独的 Lumen 应用程序容器运行:

  • API 网关服务(与 Laravel Passport 集成以进行身份​​验证和请求验证以进一步处理)
  • 聊天服务(消息/聊天室服务)
  • 通讯社
  • ......(以及许多其他服务)

所有这些服务都有自己独立的 Redis/MySQL 数据库等

例如,在单体应用中,数据库中有一个 User 表,表之间存在关系等等。我已经使用 JOIN 和其他查询根据当前用户 ID 的逻辑选择来检索数据。

但是现在我在移动/网络应用程序中有一个常规页面,我必须从不同服务中获取当前可见页面的多个信息。

为了接收这些数据,我在不同的服务中发送了多个请求

题:

使用微服务架构存储用户信息的最佳/正确做法是什么,以及以最小的内存/时间损失从其他微服务中检索该用户的相关数据的正确方法是什么?以及在哪里存储用户信息(如 id、电话等)以避免数据重复?

抱歉可能重复。试图理解..

architecture microservices

5
推荐指数
1
解决办法
4208
查看次数

微服务架构松耦合并发症

我对整个微服务潮流还很陌生。我一直在研究良好的微服务环境背后的架构和原则。

定义微服务的主要内容之一应该是每个服务的松散耦合特性。微服务 A永远不应该直接调用微服务 B,否则您正在有效地创建一个失去架构模式提供的可扩展性的单体系统。

问题/例子

如果我开发了一个返回 GUID 的微服务(例如),建议环境中的其他微服务可能会在需要时直接调用 GUID 服务是合理的。

我知道可以使用各种排队系统将数据从一个服务传递到下一个服务,但在我看来,它们主要用于插入、删除或更新。

我无法理解如何将队列用于简单读取(如我的 GUID 示例)以及为什么您不直接从另一个微服务调用 GUID 服务。

注意:返回 GUID 只是一个例子,我知道大多数语言都能够在内部生成它们

对此有所澄清将不胜感激。

loose-coupling microservices

3
推荐指数
1
解决办法
497
查看次数

微服务应该有多小?

一个系统应该在哪些条件下拆分为微服务,一个微服务应该“小”到什么程度?

microservices

1
推荐指数
1
解决办法
1496
查看次数