支持服务作为附加资源

Pun*_*cky 5 cloud cloud-foundry 12factor spring-boot microservices

我在查看 12 因素应用原理时看到了这样的说法。我相信这个声明指出应用程序必须响应任何支持服务(例如数据库或消息代理)并连接到它们,无论它们是什么。它与传统的连接方式有何不同?例如:在我的微服务中,我将数据库和 kafka 代理定义为用户在云铸造厂中提供的服务。它只是提供连接参数作为 vcap 服务变量。我仍然有连接到完全不同的数据库和 kafka 代理的代码。这个说法意味着什么?它与我们在非云环境中所做的有何不同?

Bar*_*ath 0

正如下面的文章中所述:

\n\n

https://12factor.net/backing-services

\n\n

它指出:

\n\n
\n

支持服务是应用程序在正常操作过程中通过网络使用的任何服务。示例包括数据存储(例如 MySQL 或 CouchDB)、消息/队列系统(例如 RabbitMQ 或 Beanstalkd)、用于出站电子邮件的 SMTP 服务(例如 Postfix)和缓存系统(例如 Memcached)。

\n
\n\n

微服务可以连接到任何支持服务,无论平台如何。在 PCF 中,您将服务绑定到微服务以进行连接。在其他云环境中,您可以指向任何支持服务,例如AWS RDS或平台提供的其他服务。

\n\n

真正的区别是:

\n\n
\n

数据库等支持服务传统上由与 app\xe2\x80\x99s 运行时部署相同的系统管理员管理。除了这些本地管理的服务之外,应用程序还可能具有由第三方提供和管理的服务。资源可以随意附加和分离以进行部署。例如,如果 app\xe2\x80\x99s 数据库由于硬件问题而出现异常,则 app\xe2\x80\x99s 管理员可能会启动从最近的备份恢复的新数据库服务器。可以分离当前的生产数据库,并附加 \xe2\x80\x93 新数据库,所有这些都无需更改任何代码。

\n
\n