登录
首页 >  Golang >  Go问答

实现多子域关联独立数据库的方法探究

来源:stackoverflow

时间:2024-02-04 22:22:36 211浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《实现多子域关联独立数据库的方法探究》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

问题内容

我使用 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 /微服务简单术语---简介

以上就是《实现多子域关联独立数据库的方法探究》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>