最近玩GAE的一些心得。。。

本文介绍了如何在Eclipse中安装Google App Engine (GAE) 插件,并列举了使用GAE进行Java开发时需要注意的问题,包括查询结果处理、文件存储限制、图片处理等方面的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

eclipse里面下
[url]http://dl.google.com/eclipse/plugin/3.6 [/url]

,记住不要下gae sdk 和 gwt sdk,因为超慢,只需要下eclipse的plugin 就好了,

gae sdk另外用相关的下载工具就好了, 我的是1.4.3,下完后直接建立一个gae工程,

关于sdk的JDO存储要说明一下,

说下GAE里面的一些缺陷。。。

1.查询 结果集的时候,必须使用一下list.size,不然直接关闭后是没有相关的list数据的


public static <T> List<T> executeSqlForList(String gql) {
PersistenceManager pm = getPesistentManager();
try {
List<T> list = (List<T>) pm.newQuery(gql).execute();
logger.info("query list sql[" + gql + "]resultSize==>"
+ list.size());
return list;
} finally {
pm.close();
}
}




2.查询总数的是貌似只有1000以内,


public static <T> int getCountBySql(String gql) {
PersistenceManager pm = getPesistentManager();
try {
Query query = pm.newQuery(gql);
query.setResult("count(this)");
return (Integer) query.execute();
} finally {
pm.close();
}
}


3.被X掉的文件存储以及限制的存储大小。。
post的大小是10MB, 但是存储只能有1MB,想上传一个4MB的图片都不行,虽然可以分片,但是实在有点麻烦。

4.图片进行缩小的还必须用google自己提供的API,虽然缩小后的像素比较好,但是存储的空间有点大。


Blob imgContent=..from JDO

ImagesService imagesService = ImagesServiceFactory.getImagesService();

Image oriImage1 = ImagesServiceFactory.makeImage(imgContent.getBytes());
Transform resize1 = ImagesServiceFactory.makeResize(160,
120);
Image img2 = imagesService.applyTransform(resize1, oriImage1);
store as ....(new Blob(img2.getImageData()));



5.另外,GAE的访问速度实在是太慢了,自己用godaddy 注册了一个域名后速度不敢恭维。。。
[url]http://wedding.brucexx.info/[/url]

看下了TTL=48,看来。。

6.最后访问时间是需要做国际化处理的,看了下时区,貌似服务器处于洛杉矶附近。。
03-28
<think>好的,我现在需要帮助用户了解Google App Engine(GAE)的概述及使用方法。首先,我得回忆一下GAE的基本信息,确保概念准确。GAE是PaaS平台,支持多种编程语言,比如Java、Python、Go等,用户无需管理服务器,专注于代码即可。这一点很重要,需要明确提到。 接下来,用户可能需要知道GAE的核心特性,比如自动扩缩容、集成服务(如数据库、存储)、版本控制和监控等。这些特性是GAE的优势,应该详细说明。另外,GAE的使用场景,比如Web应用、移动后端、API服务,这些应用场景能帮助用户判断是否适合他们的项目。 然后,用户可能关心如何使用GAE。这里需要分步骤讲解,比如环境准备、项目配置、代码示例、部署流程。示例部分最好用Groovy,因为引用中提到了Groovy和Gradle配置,可能用户对此感兴趣。同时,要确保代码示例正确,并解释关键点,比如app.yaml的配置和Gradle插件的使用。 还要注意引用中的信息,引用1提到Groovy和Gradle配置,引用2提到GAE对Java的支持和开发注意事项。需要将这些内容自然地融入回答中,比如在环境准备或配置部分提到使用Groovy和Gradle,同时指出GAE的局限性和开发时需注意的地方。 用户可能遇到的问题包括如何选择合适的服务(标准环境还是灵活环境),如何处理冷启动延迟,以及如何优化成本。这些问题可以在注意事项部分提到,帮助用户避免常见陷阱。 最后,生成相关问题时要围绕GAE的核心功能、配置、优化和对比其他平台展开,确保问题对用户有进一步帮助。例如,性能优化、与其他云服务对比、限制及应对策略等。 检查是否需要符合格式要求,比如数学公式的格式,但GAE相关内容可能较少涉及数学,但如果有代码块或路径配置,需用正确的格式。同时,确保回答结构清晰,分点明确,语言简洁。</think>### Google App Engine (GAE) 概述及使用方法 #### 一、GAE 概述 Google App Engine (GAE) 是 Google 提供的全托管式平台即服务(PaaS),支持开发者构建和扩展 Web 应用及移动后端,无需管理底层服务器基础设施[^2]。其核心特性包括: 1. **自动扩缩容**:根据流量动态调整资源,支持从零到全球级规模的扩展。 2. **集成服务**:内置 NoSQL 数据库(Datastore)、内存缓存(Memcache)、云存储(Cloud Storage)等服务。 3. **多语言支持**:最初支持 Java、Python,现扩展至 Go、Node.js、Ruby、PHP 及 .NET。 4. **版本控制与监控**:支持多版本部署、流量拆分,并提供日志分析、错误跟踪等运维工具。 #### 二、使用方法 ##### 1. 环境准备 - **安装工具**:安装 Google Cloud SDK(含 `gcloud` 命令行工具)。 - **项目创建**:在 Google Cloud Console 中创建新项目并启用 GAE。 ##### 2. 项目配置(以 Groovy 为例) 引用[1]提到可通过 Gradle 配置支持 Groovy 开发。以下为 `build.gradle` 示例: ```groovy plugins { id 'groovy' id 'com.google.cloud.tools.appengine' version '2.4.2' } appengine { deploy { projectId = "YOUR_PROJECT_ID" } } dependencies { implementation 'org.codehaus.groovy:groovy-all:3.0.9' } ``` ##### 3. 代码示例(Groovlets) 创建 `src/main/webapp/WEB-INF/app.yaml` 定义运行时环境: ```yaml runtime: java11 instance_class: F1 ``` 编写简单的 Groovlet 处理 HTTP 请求: ```groovy class HelloWorldGroovlet extends HttpServlet { void doGet(HttpServletRequest req, HttpServletResponse resp) { resp.contentType = "text/plain" resp.writer << "Hello, GAE with Groovy!" } } ``` ##### 4. 本地测试与部署 - **本地运行**:使用 `gradle appengineRun` 启动开发服务器。 - **云端部署**:执行 `gradle appengineDeploy` 上传至 GAE。 #### 三、注意事项 1. **环境选择**: - **标准环境**:冷启动延迟较低,但依赖特定语言版本。 - **灵活环境**:支持自定义运行时,适合需特定依赖的应用。 2. **成本优化**:合理设置实例自动扩缩参数,避免空闲实例产生额外费用。 3. **数据存储**:优先使用 Datastore 或 Firestore 等托管数据库,减少运维负担。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值