运行环境

App Engine应用响应网络请求。当一个客户端(典型的是用户的Web浏览器)使用HTTP请求(比如获取在URL上的网页)连接上应用的时候,网络请求就开始了。当App Engine接收到请求时,它会从地址的域名中识别应用,.appspot.com子域名(为每个应用免费提供的)或你在Google Apps中已经注册创建了的自定义的子域名。App Engine从众多可能的服务中选择一个服务来处理这个请求。选择的依据是哪个服务最可能提供一个快速的响应。然后它使用Http请求的内容调用应用,从应用中获取响应的数据,并且将响应返回给客户端。

从应用的角度看(perspective),这个运行时环境在请求处理开始的时候存在(spring into existence),在请求处理结束时消失。App Engine提供了几种在请求之间保存数据的方法,但是这些机制在运行时环境之外存在(live outside of the runtime environment)。在运行时环境中请求之间的状态不保留,或者至少不希望在请求之间保留状态,App Engine可以在众多的需要用的服务间分发流量来给予每个请求相同的对待,而不管它一次处理的流量是多少。

从全局来看(in the complete picture),App Engine 允许运行时环境在请求处理之后还存在,并且尽可能地重用环境来避免不必要的初期化。你的应用的每个实例都拥有本地内存来缓存导入的代码和初期化的数据结构。App Engine会按需创建或销毁实例来适应你的应用的流量(traffic)。如果你允许多线程的特性,那么一个实例可以充分利用它的资源并发地处理多个请求。

传统意义上,应用代码不能访问运行它的服务器。一个应用可以从文件系统中读取它自己的文件。但是不能向文件中写,也不能读取属于其他应用的文件。应用可以看到App Engine设置的环境变量,这些变量的操纵在请求之间没有必要继续存在。尽管应用可以使用服务来执行网络操作,但是应用不能访问服务器硬件的网络设备。

总之,每个请求存在于它自己的沙箱中。这允许App Engine使用最快的响应服务器来处理这个请求(估算的)。对于我们的向这个应用发出的请求,无法保证同一个应用实例来处理两个请求,尽管这些请求来自于同一个客户端并且都相对很快地到达了。

沙箱也允许App Engine在同一个服务器上运行多个应用而不会出现一个应用影响另一个应用。除了限制对操作系统的访问,运行时环境也限制了时钟的数量以及一个请求可以得到的内存。App Engine使得这些限制有伸缩性,并且对应用使用了更严格的限制,防止应用耗尽资源来保护共享资源。

时间: 2024-10-19 11:10:04

运行环境的相关文章

Docker 搭建 Tomcat 运行环境

使用 Docker 搭建 Tomcat 运行环境 1. Docker与虚拟机的区别 2 搭建过程 2.1 准备宿主系统 准备一个 CentOS 7操作系统,具体要求如下: · 必须是 64 位操作系统 · 建议内核在 3.8 以上 查看 CentOS 7系统内核: [[email protected] ~]# uname  -r 3.10.0-327.el7.x86_64 2.2 安装Docker [[email protected] ~]# yum  -y   install   docker

Jsp运行环境——Tomcat

JSP JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它[1] 是由Sun Microsystems公司倡导.许多公司参与一起建立的一种动态网页技术标准.JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp). 用JSP开发的Web应用是跨平台的,既能在Linux下

二、交互式运行环境——REPL

1.什么是REPL? REPL:Read-Eval-Print-Loap,即读-计算-写-循环,描述了其四项基本功能. REPL是可交互运行环境,开发者可以在该运行环境中输入任何JavaScript表达式,回车后运行环境会显示结果.REPL是为了开发者方便测试JavaScript代码. 2.如何进入REPL环境? 在命令行中输入node回车即可. 3.REPL使用范例: 1)给变量赋值:foo = 'bar': 2)将对象赋值给变量: user = new Object(); user.Name

Java集成开发环境--Eclipse for J2EE配置JRE运行环境

.d1 { border-style: none } .d2 { border-style: solid } .d3 { border-style: dotted } .d4 { border-style: dashed } .d5 { border-style: double } .d6 { border-style: groove } .d7 { border-style: ridge } .d8 { border-style: inset } .d9 { border-style: out

go开发和运行环境的配置

1.运行环境的下载.安装.配置: 下载:http://www.golangtc.com/download  官网下载经常被墙屏蔽,所以就从golang中国下载; 安装及其配置:http://jingyan.baidu.com/article/3c48dd3492fc1ee10be358d7.html 2.IDE:Sublime text3 安装及其使用 3.版本控制工具Git:主要是方便访问github的项目,百度搜索"win git安装使用"即可. 4.在sublime中安装:(这些

Java开发和运行环境的搭建

Java开发需要准备的东西? JDK+Eclipse 其中JDK的意思是Java开发工具包,Eclipse是进行用于做Java程序开发的工具(当然你也可以用记事本什么的去做). 其他开发工具:JCreator,JBuilder,... jdk的介绍和安装教程度娘里面到处都是,这里自己也在啰嗦一下吧. 关于jdk的详细介绍: JDK是Java Development Kit的缩写,即Java开发工具集.JDK是整个Java的核心,包括了Java运行环境(JRE).Java开发工具和Java基础类库

定制化Azure站点Java运行环境(1)

Azure website提供了为现代化的web应用程序快速部署的PAAS平台,可以让用户几分钟之内快速的将自己的应用部署到云端,并且提供了自动扩展(auto-scaling),SSL,多种语言(Java,Python,PHP, Node.JS, .Net) 等的支持,并且可以和其他Azure服务无缝整合等特性,赢得了很多用户的青睐. 作为PAAS平台,Azure website的app运行环境,OS等底层设施都由微软进行管理,用户只需要关心自己的App和Data即可,但在一些情况下,用户希望能

在CentOS 6.6上搭建C++运行环境

1.安装运行环境 # yum install gcc-c++ 备注:此时会将gcc-c++和libstdc++-devel都安装上. 2.查看g++是否安装成功 [[email protected] 桌面]# g++ -v 使用内建 specs. 目标:x86_64-redhat-linux 配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://b

安装 Ruby, Rails 运行环境

对于新入门的开发者,如何安装 Ruby, Ruby Gems 和 Rails 的运行环境可能会是个问题,本页主要介绍如何用一条靠谱的路子快速安装 Ruby 开发环境. 次安装方法同样适用于产品环境! 系统需求 首先确定操作系统环境,不建议在 Windows 上面搞,所以你需要用: Mac OS X 任意 Linux 发行版本(Ubuntu,CentOS, Redhat, ArchLinux ...) 强烈新手使用 Ubuntu 省掉不必要的麻烦! 以下代码区域,带有 $ 打头的表示需要在控制台(

ubuntu 下搭建apache+python的运行环境

ubuntu下怎么搭建apache+python运行环境,可以参考http://www.01happy.com/ubuntu-apache-mod-python/ ,这里只是简单的记录下步骤,本文主要讲一些配置(原文中配置有问题): 1.安装apache:sudo apt-get install apache2 2.安装mod_python模块:sudo apt-get install libapache2-mod-python 3.修改配置文件: 修改/etc/apache2/sites-en