【发布时间】:2018-01-14 15:12:51
【问题描述】:
我正在构建一个由几个核心“部分”(用户、消息和交易信号)组成的 NodeJS 平台。
所以我的想法是为每个微服务创建微服务,并且效果很好。但我无法理解如何在微服务之间“加入”数据(我最初是前端... ..)
例如,我有 3 个微服务。每个都有自己的 MongoDB,在自己的机器上完全隔离。想象一下从单个微服务检索消息的常见情况,消息有一个“user_id”,我需要获取要在检索到的消息对象中组合的用户名和 profilePicture..?
我阅读了很多关于使用 Redis 的信息,但它对我来说似乎是一种“消息传递”服务,而不是一种“组合”服务。任何人都可以帮助我度过黑暗吗??
谢谢!!
我知道这是一个非常笼统的问题......但我无法掌握在组合多个微服务的数据时“最佳实践”是什么......
【问题讨论】:
-
我们如何为您的应用提供建议,我们不知道您的代码和架构是什么样的......
-
对不起,我不知道...这是一个庞大而复杂的话题,Stackoverflow 旨在解决短代码 sn-ps 和精确问题,而不是用于辩论架构问题:/
-
我认为你可以有不同的方法来解决这个问题。其中之一是制作一个 API 网关,它是所有微服务的入口点。您收到的每个请求都应该发送到您的 API 网关,然后网关会将其进一步发送到微服务。因此,您在 API GW 中获取您的请求,它调用不同的微服务(如果来自不同服务的数据不相互交互,则为异步),然后将它们组合在响应中并将其发送回。例如:cdn.wp.nginx.com/wp-content/uploads/2016/04/…
-
嗯,我所做的是创建一个身份验证微服务,它为我提供了一个 JWT。 & 处理身份验证。然后,您的 API 网关可以使用 Auth 确认每个请求。微服务。你可以让你的 API 网关尽可能广泛,我认为任何语言都可以适合你,只要你安全可靠地做。
-
您可以通过维护一个单独的“读取模型”数据存储来做到这一点,该数据存储已针对您的 UI 视图模型进行了优化。您的读取模型将订阅来自其他服务的事件,以使其数据保持最新。
标签: javascript node.js redis microservices