GAE是无状态的吗?有什么影响?

2024-05-10

我曾经被告知 GAE 是无国籍的。我总体上理解无状态的概念,但我可以使用一些指导来从概念上将其应用于 GAE 类型的系统。

我专门问这个问题是因为我开发的一个应用程序似乎存在干扰问题。也就是说,当两个或更多人同时使用它时,它就会变得混乱。 (我正在继续进行错误测试,以确认该错误仅在同时使用期间发生。)我认为理论上可能有两种方式发生此类干扰:A,错误的 GQL 查询获取错误的数据库记录(我检查了这一点,不);或 b.在服务器级别。我的问题:后者实际上可能吗?当应用程序运行时,一个用户是否可以通过更改程序内变量的状态等方式干扰另一个用户?或者,也许这是无国籍状态所阻止的?我很困惑,可能错误地表达了这个问题。合十礼。


我认为您混淆了一些术语。首先,您使用什么语言?这是java还是python?

告诉你 GAE 是“无国籍”的人并不知道他们在说什么,或者你对他们告诉你的内容感到困惑。 GAE 是一个 Web 服务器平台,应用程序的状态取决于您。 HTTP 是一种无状态协议(GAE 用于构建使用 http 的 Web 应用程序),但您绝对可以打开会话并以这种方式为用户实现有状态。

您所描述的错误条件是并发性之一。您在 GAE 中拥有共享资源(数据存储、内存缓存等),并且如果您使用的是高复制数据存储,则数据存储中还具有最终一致性。

GAE不保证同一个服务器实例将服务同一个人的多个请求,并且默认情况下没有多线程(无论如何在java中,我不确定python)。如果没有多线程,任何给定时间任何实例上都只有 1 个人。但是,如果启用多线程,则必须确保代码是线程安全的,否则可以让 2 个用户在单个实例上修改变量,但这并不是 GAE 独有的。

您绝对可以让 2 个用户修改 2 个不同服务器上的相同数据存储实体或相同的内存缓存条目,并且您需要通过使用事务等来针对这种情况进行编码。此外,对于最终一致性,写入和读取之间可能存在延迟,因此如果您写入数据而另一个用户立即读取它,他们可能不会获得相同的值 后退。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GAE是无状态的吗?有什么影响? 的相关文章

  • Appengine - 隐藏文件夹的部署

    为了验证 SSL 证书 我需要将包含一些文件的隐藏文件夹 well known 上传到我的应用程序 我正在使用 eclipse 部署 java 应用程序 但 appengine 上的应用程序未收到这些文件 我猜他们被过滤掉了 我尝试将隐藏文
  • 不断收到错误消息,表示 localhost 的 Server App Engine Standard 无法启动

    当尝试在 Eclipse 中启动 Google 应用程序引擎项目时 我不断收到错误消息 指出本地主机上的服务器应用程序引擎标准无法启动 错误日志如下 以前有人遇到过这个问题吗 问题的原因是什么 WARNING An illegal refl
  • 使用 Objectify + google appengine 进行不区分大小写的过滤器查询

    有没有一种简单的方法可以使用 Objectify google appengine Java 进行不区分大小写的过滤器查询 本质上 这就是我想要做的 只是我需要电子邮件过滤器不区分大小写 Objectify objectifyService
  • 如何忽略 NDB/DB 查询中的大小写

    这似乎是一个简单的问题 但我没有看到任何内容类定义 https developers google com appengine docs python ndb queryclass hl en 如果我有疑问 Video query Vide
  • Google App Engine 的 JDO:转义引号

    如何转义 JDO Google App Engine 中的查询参数 例如 如果变量名称可能包含单引号 形式的不安全字符 如何使下一个片段安全 PersistenceManager pm String query select from Pe
  • 出现意外的关键字参数“timeout”(Python 中的 google-cloud-storage)

    使用 google cloud storage 的 Python 项目在本地运行良好 但是当它从 App Engine 运行时 会显示错误 Traceback most recent call last File opt python3 7
  • 提供节点名或服务名,或未知

    我收到这个 Python 错误 File Library Frameworks Python framework Versions 2 7 lib python2 7 urllib2 py line 1184 in do open rais
  • Google App Engine Java:如何删除未使用的索引?

    如果我发现有关删除未使用的索引的信息 例如上传和管理Python应用程序 删除未使用的索引 http code google com appengine docs python tools uploadinganapp html Delet
  • 在 Google Cloud 中创建 OAuth 凭据的权限

    使用 IAM 我尝试允许某些用户访问 API 并允许他们创建 OAuth 客户端凭据 是否有允许这样做的预定义角色 我不想使用项目编辑器的角色 因为我试图仅允许访问必要的服务 当用户在其项目中时 他们转到 API 和服务 gt 凭据 用户会
  • DatastoreFailureException:内部错误

    刚刚开始收到此错误 没有进行任何代码更改 数据存储上的 GAE J Datanucleus JDO JPA 版本 v1 我在欧盟服务器上的应用程序无法运行 美国目前不受影响 怀疑谷歌内部有什么问题 有人能同意吗 是的 大约 40 分钟前我开
  • Golang Appengine 项目无法构建

    我有一个使用 golang 的应用程序引擎项目 我已经大约一年没有碰过了 我现在无法让它在之前构建的机器上构建 我收到以下错误 go app builder 解析输入失败 解析器 src golang org x net internal
  • PubSubHubBub 集线器

    我目前正在构建一个基于 PubSubHubBub 协议的实时 Web 应用程序 但是 我遇到了几个问题 首先 我正在寻找可以在我的服务器上运行的集线器应用程序 有几个应用程序 但大多数还不成熟 或者不支持 0 3 规范 官方的 google
  • Java 6 应用程序无法从任何版本的 SDK 部署到 Google App Engine

    当我尝试在 App Engine 中部署 Java 6 应用程序时 我遇到了类似的错误 Java 6 applications are prevented from being deployed to Google App Engine f
  • “datetime.datetime”对象的属性“tzinfo”不可写

    如何设置刚刚从数据存储中出来的日期时间实例的时区 当它第一次出现时 它是 UTC 我想把它改成EST 我正在尝试 例如 class Book db Model creationTime db DateTimeProperty 当检索一本书时
  • gwt rpc 中的会话 ID cookie

    假设我正在滚动自己的会话代码 那么在 java 中生成唯一且安全的会话 id cookie 的正确方法是什么 我不应该自己推出而是使用已经标准化的东西吗 我正在使用 gwt 和 google app engine 平台 如何使会话在浏览器
  • 如何使用java读取google appengine中的图像url

    ImageIO不在GAE的白名单中 如何在不使用 ImageIO 的情况下从 url 读取图像 JPG PNG 作为 ImageBuffer 只需使用内置 API 的 Google App Engine byte b URLFetchSer
  • 有没有办法使用 ASP.NET 在用户离开页面时始终运行某些服务器端代码?

    我想知道当用户离开 ASP NET 中的页面时是否有任何方法可以始终运行一些服务器端代码 页面卸载事件不好 因为如果有人单击链接 则不会调用该事件 理想情况下 即使用户关闭浏览器 我也希望代码能够运行 我怀疑我所问的问题是不可能的 但问一下
  • 在 python 中将变量传递给重定向上的模板

    我对 Python 比较陌生 所以请原谅任何幼稚的问题 我的主页有 2 个输入 一个用于 产品 一个用于 电子邮件 当用户单击 提交 时 他们应该被发送到 success 其中会显示 您已请求 产品 您将通过 电子邮件 收到通知 我试图找出
  • gcloud.app.deploy 错误响应:[9] 应用程序启动错误:[email protected] start /app 节点 app.js

    我对收到的错误消息感到好奇 环境 谷歌应用引擎 Nodejs 弹性环境 没有安装 Express 服务器 设置 app yaml 包含标准信息 server js 已创建但为空 此时此刻 app js 已创建 但目前为空 错误 错误 gcl
  • 将 clientsecret 转换为私钥

    我正在 AppEngine 中使用 Google Cloud Storage 并尝试使用 POST 表单将文件上传到 GCS 我遇到的问题是签署保单文件所需的步骤 我可以轻松获取 client secret 它是来自client secre

随机推荐

  • 为什么 textarea 不是 input[type="textarea"]?

    为什么有一个元素
  • 初始化 HashMap 的最佳方法

    我通常会这样做 HashMap
  • IIS AppPool 用户权限不起作用

    我正在 Win2012 R2 上将 PHP 应用程序从 IIS7 移动到 IIS8 5 该应用程序在其自己的应用程序池 MyPortal 中运行 并且需要子文件夹的写入权限才能创建 PDF 所以我将修改或完全控制权限分配给IIS 应用程序池
  • 使用本地图块的 TileProvider

    我想使用新的TileProvider最新 Android Maps API v2 的功能可在地图上覆盖一些自定义图块GoogleMap 然而 由于我的用户很多时候都没有互联网 我想将图块存储在设备上的 zip 文件 文件夹结构中 我将使用生
  • 使用 Command + P 搜索文件时,Apple M1 Pro 上的 VS Code 速度非常慢

    我正在运行 VS Code 1 70 2 并一直在使用 SSH 远程扩展来连接到本地 Linux 服务器的代码库 多年来Command P文件搜索功能非常快 在大型代码库中是一个非常方便的工具 但在过去 2 周内 该功能已停止运行 执行文件
  • ASP.Net Core 2.0 SignInAsync 返回异常值不能为 null,提供程序

    我有一个 ASP Net Core 2 0 Web 应用程序 我正在使用单元测试 使用 NUnit 进行改造 该应用程序运行良好 并且迄今为止的大多数测试都运行良好 但是 测试身份验证 授权 用户是否登录并可以访问 Authorize 过滤
  • C++ 中 const 的优点? [复制]

    这个问题在这里已经有答案了 有什么优点const http en wikipedia org wiki Const correctness对于外行来说 用 C 和 C 语言 Const 对于传递给函数的指针或引用特别有用 它是一种可以立即理
  • SQL:使用相等的键和最近的键进行连接(类似于 Pandas 的合并)

    例如 我有2个这样的表 对于表 1 中的每一行 我想获取该行 same customer id and nearest date 就我而言 table2 date lt table1 date 结果应该是这样的 我怎样才能在 SQL 中做到
  • 该捆绑包无效。 Apple 目前不接受使用此版本操作系统构建的应用程序。 (小牛队)

    我首先说我已经安装了 Mavericks 我很好奇看到新功能 最好还是等待 因为 显然 没有什么耸人听闻的变化 无论如何 我正在尝试将我的应用程序提交到应用程序商店 但经过与代码签名的真正艰苦斗争后 我最终得到了以下消息 此捆绑包无效 Ap
  • 如何在 Vanilla JS 中使用 Apollo Client 创建 GraphQL 订阅

    最近 Apollo Client 发布了 websocket 订阅功能 但到目前为止我只看到它通过在 componentWillMount 生命周期钩子中使用 subscribeToMore 启动查询来使用 这是一个来自的例子https d
  • mvc 中的模型(最佳实践,PHP)

    我知道有很多关于 MVC 和最佳实践的文章和问题 但我找不到这样的简单示例 假设我必须用 PHP 开发一个 Web 应用程序 我想遵循 MVC 模式 没有框架 该应用程序应该有一个简单的书籍 CRUD 我想从控制器获取我商店中的所有书籍 保
  • Python 3 - 编码/解码与字节/Str [重复]

    这个问题在这里已经有答案了 我是 python3 的新手 来自 python2 我对 unicode 基础知识有点困惑 我读过一些很好的帖子 这让一切变得更加清晰 但是我看到 python 3 上有两种方法可以处理编码和解码 但我不确定使用
  • 从内核空间中的块设备读取

    我正在编写一个内核模块 需要从现有的块设备执行读取 dev 东西 有谁知道有任何其他模块可以执行这些操作 我可以用作参考吗 欢迎任何指点 Linux 2 6 30 如果你真的绝对必须那么使用filp open filp close vfs
  • 使用 versioneer 和 GitHub 更新版本号

    我在用versioneer适用于多个 GitHub 托管的 Python 项目 看来 versioneer 已安装并且工作正常 我可以调用project version 但是我忘记了如何更新版本号的过程 如果有什么东西在setup cfg
  • 解决复合赋值中的转换警告

    在我的代码中有很多variable lt lt 1 句子哪里variable类型为 uint16 t 编译器发出警告说 从 int 转换为 uint16 t 可能会改变其值 Wconversion 我该如何解决 我可以使用长格式的符号 例如
  • Java 相当于不变文化

    我正在将以下 C 代码转换为 Java Java 中是否存在与 NET 中的文化不变概念相当的概念 string upper myString ToUpperInvariant 由于不变文化实际上只是美国文化 我可以在 Java 中做类似的
  • laravel Blade 模板不渲染

    进入 Laravel 后 我尝试使用 Blade 模板 但它没有渲染 我的所有示例都来自 Laravel 文档 UPDATE 所以这是我的master blade php 文件位于资源 gt 视图 gt master blade php y
  • svn:修订版本中不存在路径

    我想在颠覆中创建标签 在命令行上我尝试了以下操作 svn复制http myserver mycompany com 8080 svn SVN Main trunk http myserver mycompany com 8080 svn S
  • Ruby 对象打印为指针

    我正在尝试创建一个类 它有一个带有单个参数的构造函数 当我创建该对象的新实例时 它返回一个指针 class Adder def initialize my num my num my num end end y Adder new 12 p
  • GAE是无状态的吗?有什么影响?

    我曾经被告知 GAE 是无国籍的 我总体上理解无状态的概念 但我可以使用一些指导来从概念上将其应用于 GAE 类型的系统 我专门问这个问题是因为我开发的一个应用程序似乎存在干扰问题 也就是说 当两个或更多人同时使用它时 它就会变得混乱 我正