评论 7
服务器位置
服务器位置
托管 MongoDB 数据库
近年来,MongoDB在学术界和专业人士中都变得很流行。使用该数据库系统可以以非常简单的方式存储非结构化数据。
通常,此类数据库必须位于易于访问的环境中,因为使用该数据库的应用程序通常需要在物理上相距较远的位置进行操作。鉴于此需求,本文提供了一种使用Web托管服务在MongoDB中存储和执行基本操作的方法。对于那些想知道如何在云中创建和管理MongoDB数据库的人来说,该主题的讨论非常有用。为了提供用于管理此类数据库的解决方案,本文还指出了用于其管理的图形工具。在整篇文章中,将重点介绍使用Java编程语言开发Web应用程序的技术。
为了访问数据库,将开发一个Web服务,该服务将托管在免费主机上。为了测试该服务,将开发Java语言的控制台应用程序。最后,本文向您展示了如何测试和监视MongoDB Web服务和数据库。
术语NoSQL不仅指SQL,即不仅指SQL。最初提出了其他含义,但是社区最多采用的是这个。 NoSQL数据库的出现促进了大容量数据的存储和处理,并提供了允许高可伸缩性的结构。
当前大约有150个不同的NoSQL数据库。 MongoDB由于其庞大的文档和所涉及的社区而获得了新的关注者。
MongoDB运动始于2009年初,此后,MongoDB增加了更多功能,例如无模式支持,轻松复制,简单API,不同语言的驱动程序,操纵工具,功能更新等等。
NoSQL数据库组由面向应用程序的数据库组成,这些数据库管理大量数据,采用可伸缩性功能,REST协议,MapReduce(请阅读BOX 1)和其他高性能功能。
方框1:MapReduce
MapReduce是Google引入的一种编程模型,其目的是支持对分布在多台计算机(集群)上的数据集进行并行处理。此模型的操作基于两个功能:映射和归约。为了执行其数据被聚类的搜索合并,请求者将其搜索同时发送到多台计算机。
此时,在请求者和集群之间建立映射(映射),然后将搜索结果分组(减少),以生成要传递给请求者的搜索结果。
REST的缩写表示代表状态转移。它是仅使用HTTP调用的分布式数据处理(CRUD)系统中广泛使用的技术。这种调用简化了编程,将低级任务抽象给程序员,从而实现了Web服务中不同例程的实现。进行的调用基本上是针对数据插入(POST),数据查询(GET),数据更新(PUT)和数据删除(DELETE)。
MongoDB
从NoSQL开始时要考虑的第一件事是比较性的。因为我们不能不说,我们去比较与关系银行有关的主要术语。
在MongoDB中,每个文档可以与同一集合中的另一个文档完全不同,这在关系模型中是不正确的。通常,数据以BSON(二进制JSON)格式写入。
要遵循下一部分中介绍的步骤,无需在本地计算机上安装MongoDB。
在本地计算机上安装仅是为了更快,更简单的测试。如果读者想在自己的计算机上安装MongoDB并对其进行操作,则可以使用以下一些初始命令。要运行服务(守护程序),必须考虑以下命令:/ mongo。随着服务的运行,我们可以启动命令解释器:/ mongo,列出数据库的基本命令是:show DBS或show database。选择要使用的数据库(如果不存在,将创建sqlMagazine数据库):使用sqlMagazine重要的是要意识到大写字母和小写字母不同的事实,请谨慎使用此细节。
MongoDB工具
经过这么多命令,我们已经有了前进的基础。知道命令对于开发应用程序是必不可少的,但是,对于管理而言,还有其他一些图形工具是很好的盟友。例如,图1和图2是从MongoHub软件捕获的。
还有其他访问MongoDB的工具,例如RockMongo和MongoVUE。除了在PHP配置中激活MongoDB模块之外,RockMongo工具还需要其他服务(PHP和Apache)。该工具在OpenShift中被用作标准,因此了解它是一件好事。
MongoVUE工具仅适用于具有Microsoft Windows操作系统的计算机。它具有良好的功能。
对于Apple操作系统用户(Mac OS 10.6.x或更高版本),有MongoHub工具。尽管此工具有特定的网站。
创建一个帐户来托管应用程序
目的是使数据库在Web上可用,并允许通过Web上的应用程序或另一台计算机上安装的应用程序对其进行访问。选择用于托管数据库的服务是OpenShift。这样,用户最多可以创建三个应用程序,并且在每个应用程序中,可以创建多个服务,例如Java,PHP,Phyton,Ruby应用程序。
如果要在同一帐户上创建更多应用程序,甚至要租用其他服务和可伸缩性资源,则必须创建一个付费帐户。 OpenShift提供了一个平台即服务,缩写为PaaS。让我们通过必要的步骤来创建一个帐户。
最初,用户必须转到OpenShift端口地址:并选择选项。出现注册屏幕,如图所示。
只需输入数据,然后点击“注册”即可。将发送一封电子邮件以确认注册,有必要单击此电子邮件中的链接以激活注册并创建应用程序。
访问您的OpenShift帐户时,可以创建所需的服务,还提供了通过命令行访问应用程序的说明,请使用JBossDeveloper Studio IDE,以及许多其他资源。为了逐步实现此目的,我们将在本地开发应用程序后自动创建该应用程序。
必须在我们的OpenShift帐户中进行一些设置。访问该帐户后,我们必须转到“设置”部分,如图所示。
在文本框中“域名”我们必须键入所需域的名称,在此测试中,我们键入“ SQL magazine”。该名称(最大字符数为16)可以自由选择,但是,这很重要,因为它将在我们的Java项目中使用。然后点击“保存”选项。
完成此步骤后,我们可以返回到“应用程序”标签,然后点击“立即创建您的第一个应用”。选项。将出现一个列表,其中包含我们可以创建的各种服务。让我们选择“ JBoss应用服务器7”。然后显示选择应用程序名称的窗口
该名称也可以自由选择,但是它应该是一个容易记住的名称,因为我们将立即需要它。对于此测试,我们键入“ MongoDB”。
下一步是单击“创建应用程序”。此过程可能需要几秒钟甚至几分钟,请等到该过程完成。现在,我们可以返回到“应用程序”标签,然后单击创建的应用程序。
此时,我们将向应用程序添加MongoDB。为此,只需单击该应用程序(在本示例中为“ mongodb”然后点击“添加MongoDB 2.4”。如果您打开包含信息和说明的窗口,则链接“继续至应用程序概述页面”将被显示,必须单击它,然后可以单击“添加MongoDB 2.4”。
然后点击“添加墨盒”。此过程也可能需要几秒钟。然后将出现一个包含重要信息的屏幕,用于访问数据库,记录此信息非常重要,因为它将在后续步骤中使用。该信息是用户名,密码和数据库名称。
目前,我们已经拥有一台服务器(JBoss应用服务器)和一个NoSQL数据库(MongoDB)。现在,只需创建一个访问此银行的Web服务和一个访问此Web服务的项目即可。
应用开发
基本上,我们将有两个应用程序和一个数据库。第一个应用程序将负责对数据库的请求。该应用程序将作为一个非常简单的示例,仅用于测试Web服务的功能。第二个应用程序(Web服务)将负责从第一个应用程序接收请求并访问数据库。
让我们转到第一个应用程序。它的先决条件是Eclipse Kepler和两个API库(应用程序接口)Jersey(jersey-client和jersey-core)。为了简化和简化此处介绍的分步操作,我们将在Eclipse Kepler中制作一个Java应用程序。
使用Mac OS 10.9.3操作系统获得了逐步说明的图像,但是,读者可以使用Microsoft Windows甚至Linux发行版。
在Eclipse访问权限内:文件,新建,项目。在下一个窗口中,选择“ Java项目”并点击“下一步”。然后,输入项目的名称,然后选择选项“完成”。
现在我们需要在项目中创建一个类。为此,只需右键单击“ src”,“新建”,“类”。
在下一个屏幕上,我们必须为该类输入一个名称,然后选中选项“创建主方法”。 "公共静态void main(String [] args)&rdquo ;,然后单击" Finish&rdquo ;,
这个Java项目旨在将信息记录在将在Web上托管的MongoDB数据库中。使用的托管类型允许从外部访问数据库,也就是说,任何地方的应用程序都可以访问数据库服务器,但是,有必要重定向本地计算机上的端口。
当涉及到我们无法控制的计算机甚至需要继续访问本地端口的计算机时,甚至是涉及移动设备时,由于这可能会变得非常复杂,因此端口重定向不是最佳方法。这样,我们的Java项目将通过Web服务访问数据库。
在输入代码之前,让我们添加两个库来使用Web服务。我们将使用的两个库来自Jersey 1.18 API。要将它们添加到项目中,请在下载后将它们复制到项目文件夹中,然后右键单击项目名称,然后选择属性。
在“属性”窗口中,选择“ Java构建路径”选项,然后选择“库”。然后点击“添加外部Jar”。
现在我们已经将Jersey API添加到我们的项目中,我们可以进行一些编码了。
在此原始代码段中,我们只是创建一个URL客户端。在第一行(第3和第4行)中,我们导入了使用“泽西”方法的内容。图书馆。在第9行和第10行中,我们将创建一个对象以连接到Web服务URL。请注意,Web服务URL由我们的OpenShift帐户的全名以及单词rest and post组成,指示该Web服务具有方法的位置,分别称为rest和称为post的方法。接下来,让我们创建一些信息以发送到数据库
此清单中显示的代码段的目的是按照JSON标准组装要发送到MongoDB数据库的字符串。最后,将文件发送到服务器。现在,让我们转到Java项目的最后一个代码段。
此代码段将需要为我们的项目再次导入。
发送到云端
现在,我们可以将Web服务发送到OpenShift。在Eclipse中,选择JBoss透视图,然后单击OpenShift Application。
将要求注册中定义的帐户凭据(电子邮件和密码)。只需输入您的帐户详细信息,然后单击“下一步”。首次连接时,系统会要求您创建SSH密钥。
我们必须选中选项“使用现有的应用程序。通过选中此选项,将显示选择先前创建的应用程序的屏幕。选择应用程序,然后单击“下一步”。
在下一个屏幕上,将询问您是否要创建一个项目以发送到我们的服务器或使用现有项目。我们将使用现有项目,在这种情况下,将使用我们新开发的Web服务。为此,请取消选择选项“创建新项目“”,点击“探索”并选择jboss-as-helloworld-rs项目。
完成流程。系统将要求您确认是否使用SSH密钥,然后单击“是”。再次“是”确认Web服务的发送。完成此步骤后,我们可以发布我们的Web服务。为此,请转至Eclipse并打开“服务器”选项卡,单击以展开服务器选项卡,在本例中为“ OpenShift的mongodb”。将显示我们的Web服务jboss-as-helloworld-rs的名称,右键单击它,然后选择选项“完全发布”。或“完全发布”。
检查应用程序是否已经在OpenShift服务器上构建。为此,请转到浏览器并在“应用程序”上访问您的OpenShift帐户。标签,然后单击该应用程序。在本教程的示例中,为“ mongodb”,并确认它已被构建。
如果花费的时间太长(超过三分钟),则可能需要重新启动应用程序。为此,请使用屏幕右侧的相应图标。
最终测试
现在我们已经拥有一台可以使用MongoDB的服务器,一个将数据发送到该服务器的项目以及一个将两者结合在一起的Web服务,我们可以开始测试了。
Rock Mongo是检查功能的重要盟友。您可以非常简单地在OpenShift中激活它,只需点击“添加Rock Mongo 1.1”在“申请书标签。
另一个重要功能是“尾文件”,可以在控制台上将其激活。导航至Eclipse控制台,然后单击OpenShift Explorer,展开所有选项,直到找到应用程序为止,在本例中为“ mongodb”。右键点击并选择“尾巴文件选项。