首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >12要素:动态后端配置

12要素:动态后端配置
EN

Stack Overflow用户
提问于 2013-10-01 21:48:56
回答 1查看 173关注 0票数 1

十二要素应用的后端默认配置是将其(网络)位置放在环境变量中,例如DB=mysql://user:pw@host/db_name

但是,如果您的后端配置更具动态性,推荐的方式是什么?在我的例子中,应用程序可以使用1到n个后端,具体取决于环境。我的想法是使用像JSON这样的序列化格式,并将其放在一个变量中,例如

代码语言:javascript
复制
DB="{1: 'host:port', 2: 'host:port'}"

这是处理这种情况的更好的方法,还是有更好的替代方案?

EN

回答 1

Stack Overflow用户

发布于 2014-01-21 08:06:01

我不知道这是否是“首选”方法,但我认为它会起作用。

您将希望为未来的开发人员记录这种特性,并可能在这种不寻常的设置中添加一些指向错误配置的详细错误/日志记录。例如,如果您只想指定一个数据库,那么无论如何都需要以准JSON样式指定它。

不过,我认为更重要的是在您的服务器之间建立一个中间负载均衡器。这样,您的应用程序可以连接到负载均衡器或单个服务器,而对底层服务的性质几乎没有透明度。

因此,不是:

代码语言:javascript
复制
SetEnv DB {mysql://something@somewhere, mysql://something@somewhereelse}

你就会有

代码语言:javascript
复制
SetEnv DB mysql://something@load-balancer

负载均衡器在幕后处理多个数据库。

您还可以有一个2-db系统,一个用于读取,另一个用于写入。读操作可以是负载均衡的,并复制master-server

代码语言:javascript
复制
SetEnv READ_DB  mysql://something@load-balancer
SetEnv WRITE_DB mysql://something@master-server

然后,在测试情况下,它们将使用相同的连接字符串:

代码语言:javascript
复制
SetEnv READ_DB  mysql://something@load-balancer
SetEnv WRITE_DB $READ_DB  # not sure about syntax here
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19117952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档