我是否需要在使用它的每个微服务(模块)中或仅在根应用程序中定义数据存储索引?
我在一个带有几个微服务(模块)的应用程序上工作。 我在根应用程序中定义了数据存储区索引(它只包含那些cfg文件,如datastore-indexes.xml和queue.xml等)。 我在控制台中看到这些索引“正在服务”。 [编辑]所以我的错,我先前打破了查询,所以问题变化不大。 在多模块appengine应用程序中提到的cfg文件的最佳策略是什么?
数据存储区索引配置是应用程序级配置中的一种,由应用程序中的所有服务/模块共享,可以独立于服务本身进行部署。 事实上,建议首先部署索引配置,让GAE获取Serving
状态(可能需要很长时间,具体取决于需要编制索引的实体数量),并且仅在部署需要这些索引的应用程序代码之后。
对于GAE目的的部署,索引配置是位于特定服务中还是位于应用程序的根目录中并不重要,只要它从该位置部署即可。
但是,如果没有该服务器目录中的索引配置,本地开发服务器可能无法运行特定服务 – 我怀疑这是导致您悲伤的原因。 为了在DRY精神中解决这个问题,我的首选是在app根目录中拥有配置文件的主副本,并将符号链接指向每个服务目录。
事情变得有点复杂,因为Java GAE使用datastore-indexes.xml
配置文件,而其他语言使用index.yaml
文件,具有不同的格式。 Java也支持index.yaml
文件,但我不确定它是否在开发服务器,IDE和/或其他本地开发工具中同样得到了很好的支持。
如果您的所有模块都是基于Java的,那么您应该没问题。 但是如果你有多种语言,你可能不得不尝试共享一个index.yaml
等价物。
如果这不起作用并且您被迫使用这两个文件,每个符号链接到相应的语言服务目录,您将必须确保2个文件中的索引配置是一致的,否则您可能会破坏某些服务。
可能感兴趣: Google App Engine应用中的默认服务/模块是否可以是文件夹结构方面的非默认服务/模块的兄弟?
- 持久保存@Embeddable的@ElementCollection(Google App Engine,datanucleus)
- freemarker无法处理谷歌应用引擎上的’/’请求
- appengine-maven-plugin配置选项,如jvm标志
- Google App Engine和SQL LIKE
- 如何正确添加/操纵实体组中的数千名儿童?
- 为什么我不能从我的servlet发送电子邮件?
- 在Eclipse(App Engine)项目中包含JAR文件
- 将Spring Security与OpenID一起使用时出现AccessControlException
- 使用Google Cloud Endpoints的“会话”