【译】十二因子应用(四)

【译】十二因子应用(四)

IV 后端服务

将后端服务视为可拔插的资源

后端服务是一种在应用在网络上正常运行时消费的任意一种服务。包括数据库(如MySQL或CouchDB),消息/队列系统(如RabbitMQ或Beantalkd),发邮件的SMTP服务(如Postfix),缓存系统(如Memcached)。

数据库这种后端服务传统上与应用运行时部署一起呗同样的系统管理员管理。除了这些本地管理的服务,应用也会有一些被第三方管理的服务。如SMTP服务(Postmark),度量数据收集服务(如New Relic或Loggly),二进制存储服务(如Amazon S3),甚至API存取服务(Twitter,GoogleMap,或Last.fm)。

12因子应用的代码对待这些本地和第三方服务来说没有差别。应用端,都是可拔插的资源,通过URL或其他配置好的定位/鉴权服务。一份12因子应用的部署可以不经过任何代码修改将本地MySQL数据库替换成第三方的服务(如Amazon RDS)。同样的,本地SMTP服务可以被替换成第三方SMTP服务(如Postmark)而不需要改动代码。在这两个case,只有处理资源的配置文件需要变动。

每一个后端服务服务都是一个资源。如MySQL是一个资源,两个MySQL数据库(在应用层做sharding)就是两个独立的资源。12因子应用将这些数据库看做可拔插资源,在部署时是松耦合的。

资源可以按意愿在部署时进行拔插。如,如果应用的数据库由于硬件问题出现故障,应用管理员可以快速从一个最近的备份中进行恢复。当前的生产库可以被卸载,新数据库被挂载上 – 不需要代码变动。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101288.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 新人学习EJB!ejb到底是什么?[通俗易懂]

    1. 我们不禁要问,什么是”服务集群”?什么是”企业级开发”? 既然说了EJB是为了”服务集群”和”企业级开发”,那么,总得说说什么是所谓的”服务集群”和”企业级开发”吧!这个问题其实挺关键的,因为J2EE中并没有说明白,也没有具体的指标或者事例告诉广大程序员什么时候用EJB什么时候不用。于是大家都产生一些联想,认为EJB”分布式运算”指得是”负载均衡”提高系统的运行效率

    2022年4月5日
    249
  • 线程间通信的几种实现方式

    线程间通信的几种实现方式线程间通信的几种实现方式首先,要短信线程间通信的模型有两种:共享内存和消息传递,以下方式都是基本这两种模型来实现的。我们来基本一道面试常见的题目来分析:题目:有两个线程A、B,A线程向一个集合里面依次添加元素"abc"字符串,一共添加十次,当添加到第五次的时候,希望B线程能够收到A线程的通知,然后B线程执行相关的业务操作。方式一:使用volatile关键字基于volatile…

    2022年6月19日
    26
  • 解决网页上不能直接复制文字的问题「建议收藏」

    解决网页上不能直接复制文字的问题「建议收藏」禁用JavaScript获取网页文字一、简介二、具体操作步骤(1)打开开发人员工具(2)禁用JavaScript(3)点击确定,刷新页面(4)(5)三、总结与说明一、简介二、具体操作步骤(1)打开开发人员工具点击F12快捷键直接打开开发人员工具,多数电脑都能使用该快捷键直接打开,按F12后在浏览器右上方会出现如下图界面,点击打开开发工具即可成功打开界面如下:注:此界面功能巨大,这里我就不详细介绍,此时你只需要注意上图中我画框的齿轮位置如果使用F12快捷方式不能打开开发人员工具:在网页中先点

    2022年10月9日
    2
  • laravel 中使用tinker 验证驱动加载是否成功

    laravel 中使用tinker 验证驱动加载是否成功

    2021年10月26日
    52
  • 关于将dede织梦data目录迁移出web目录

    关于将dede织梦data目录迁移出web目录

    2021年9月19日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号