[英]GoLang multi-tenant application database connections
我是golang的新手,目前正在尝试构建多租户应用程序。 在我的应用程序中,每个租户都有自己的数据库。 我的要求是我需要根据租户请求切换数据库连接,这如何在golang中完成。 对于这个项目,我更喜欢postgresql 。
我可以有一个 map 的数据库连接到租户,但不确定这是否是一个好习惯。
非常感谢您的帮助和建议
我已经在Rails中处理过类似的要求。 可能您也可以在go-lang中使用相同的方法。
我将有一个主数据库,其中仅包含租户信息。 像租户名称和db_name。
而且我有一个机架中间件,它将根据子域切换数据库(我正在使用子域来标识租户)。
例如,您的主数据库可以有表tenants
,示例记录可能看起来像这样: { id: 1, name: 'XYZ', db_name: 'xyz' }
当您的应用程序收到带有子域xyz
的请求时,您的中间件应切换到xyz
DB。
这是一个更好的解决方案,可以创建一个模式而不是整个数据库,并在每个请求上更改识别租户的请求的模式。其他解决方案是创建一个数据库,并在中间件上的租户识别后重新打开每个请求的连接
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.