首页 >后端开发 >Golang >如何将多子域网站与独立的数据库关联起来?

如何将多子域网站与独立的数据库关联起来?

WBOY
WBOY转载
2024-02-05 22:18:08435浏览

如何将多子域网站与独立的数据库关联起来?

问题内容

我使用 sso 开发具有独立数据库的多子域网站,如下所示:

  • www.example.com(公司网站和商店)- www_db

  • blog.example.com - blog_db

  • forum.example.com - forum_db

  • account.example.com - 登录、注册、account_db(用户)

我有一个问题,在论坛上,用户必须可以添加帖子,然后在呈现帖子列表时,我必须获取每个帖子的用户数据:用户名、头像等,但由于用户和帖子是在不同的数据库中,我该怎么做?

我不明白它是如何发布的,我认为通过 API 从帖子中通过 user_ids 获取用户,但请求太多


正确答案


好吧,让我们一项一项地进行:

我假设这是一个关于身份验证的问题,在这种情况下,您可以通过 MessageQueueAccountService 发出请求以获取该特定用户的权限。如果您有大量流量,这可能会对网络造成沉重负担 - 但这可以通过在 ForumService 中缓存每个用户及其权限来优化。

此外,您还可以实现一个网关 API,该 API 在首次请求时执行用户的初始获取,然后将用户数据进一步传播到底层服务中。

与 auth 相同的情况也适用。您可以一一获取这些用户,并将它们缓存到您认为必要的时间。当然,您会暂时失去一些数据一致性,但您将获得可用性并降低网络流量(最终一致性)。您还可以使 AuthService 发出 UserChangedNotification 并将不一致情况减少到绝对最低限度。

https://obeycode.com/articles/7 /微服务简单术语---简介

以上是如何将多子域网站与独立的数据库关联起来?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:stackoverflow.com。如有侵权,请联系admin@php.cn删除