MarkLogic文档指出每个 REST API 实例必须拥有自己的模块数据库。据我了解,Modules数据库用于存储 XQueries 。假设我没有这个,并且正在开发 MarkLogic 数据库而不使用 XQuery 来保存数据,是否可以:
我想要实现的是一种基础架构,其中内容数据库的扩展独立于REST API实例,该实例持久存储并从中检索数据。这样做的目的是管理 AWS AutoScaling组中的实例,以便可以根据流量调用和删除 REST API 实例。
答案 0 :(得分:3)
我可能错了,但根据我的理解,您不需要创建新的REST api服务来扩展。将新主机添加到群集,将其添加到已创建REST api的同一组中就足够了,并且可以访问该新主机上的REST API。
它的本地磁盘上没有必要的模块,因此需要访问集群才能从原始主机检索模块。可能大多数都会被缓存,所以这只意味着初始延迟。
唯一的麻烦是从文件系统运行自定义文件。这些将需要单独安装在每个主机上。这也意味着,如果您将自定义扩展上载到其中一个主机上的REST API,它也可以在所有其他主机上使用。他们真的分享资源。它使缩放变得容易,但可能不是您的功能需要。在这种情况下,Erik建议使用Packaging可能很有用。
只有在谈论在集群(或集群中的组)之间复制REST api的时,才真正需要重新创建REST API。 REST api指南中有一节介绍了这个主题:
http://docs.marklogic.com/guide/rest-dev/migration#chapter
关于使用MarkLogic群集,特别是所谓的Evaluator节点和数据节点之间的区别,也可能值得一读。您可以在群集指南中找到有关该主题的介绍:
http://docs.marklogic.com/guide/cluster/distributed#chapter
HTH!
答案 1 :(得分:2)
保罗:
REST API 需要一个模块数据库供内部使用和扩展。
但是,这并不会限制您为同一内容数据库创建多个 REST 服务器的能力。每个 REST 服务器都有自己的模块数据库,但模块数据库不必更大 - 单个林几乎总是足够。如果要添加和删除预配置的 REST 服务器,您可能需要仔细查看Packaging,它可以传播 REST 服务器的配置及其模块数据库以及模块数据库到新集群的内容。
Erik Hennum