移动开发人员pt.2的无尽痛苦

最初发布在我的博客上

安装Usergrid。

您最好使用RTFM,并在2017年6月使用该手册将我的故事视为对我的冒险的一组评论。

Usergrid Stack是一个在Tomcat上运行的Java EE Web应用程序,使用Cassandra数据库进行存储,并使用ElasticSearch搜索引擎进行查询。

在将Usegrid Stack安装到Tomcat之前,您将首先设置数据库和搜索引擎节点。

首先,您需要Cassandra。

出于存储目的,我设置了一个单独的Ubuntu实例,该实例将成为Cassandra单节点群集。

设置很简单,并在Cassandra官方文档或数字海洋教程中进行了介绍(它们似乎更加时髦)

下一步是弹性搜索

再次,我使用了数字海洋教程

与Tomcat相同。

Usergrid似乎需要Tomcat 7或更高版本,这就是为什么我决定尝试8并看看会发生什么的原因。

立即我遇到了usergrid config的问题。 似乎在部署到tomcat的过程中没有拾取配置文件usergrid-deployment.properties 。 无论我将它们放在文档所说的位置还是遵循互联网上的各种建议。 它既没有与elasticsearch也没有与cassandra连接。

互联网上有几个与此问题有关的问题以及一些可能的解决方案:

  1. 您自己和用户网格从源进行构建可能会开始获取配置。
  2. 自己从源代码构建,并替换默认配置文件。

上帝保佑Java开发人员,从源代码进行构建并不痛苦。 除了构建文档中未提及的4行:

cd ~\usergrid\sdks\java 
mvn install
cd ..\..\stack
mvn install -DskipTests=true

好。 更详细地查看日志表明,即使在我重建之前,如果它们位于…。/ tomcat / lib /中,它也确实会拾取配置。 =(

我的Cassandra节点和usergrid后端位于不同的实例上,并且在抽出更多日志之后,事实证明问题出在Cassandra配置中,并且是绑定地址。

但是尽管如此,我还是学会了如何构建usergrid,现在该起飞了!

还没。 同样,usergrid无法在Tomcat下启动。 我决定擦除Tomcat8并尝试使用Tomcat7。 而且有效(!)

下一个问题是在Elastic Search中。 日志显示连接尝试异常。 我重新安装了usergrid docs中相同版本的ES:1.7.2,而不是最新的5.4.xо_О

终于成功了!

现在,我可能拥有全世界最好的应用程序后端。

托管。

Java Usergrid Monster和Cassandra组成的这个Dreamteam似乎很饿。

多亏了我上个赛季的算法交易项目,我才有了一个传承,包括一个专用主​​机,64 GB RAM,巨大的ssd和生动的CPU。

有一天讨价还价很好,所以让我放手对我来说很悲哀。 我决定将其用于以后的冒险。

我已经有一个决定使用的虚拟化设置。

它允许具有或多或少分离的虚拟主机,它们位于一个实例上,并以自动或手动方式在它们之间共享资源。

以前,该设置可以满足我的所有需求,例如魅力。

  • 我可以保证RAM资源用于更关键的进程。
  • 我可以创建访问权限受限的新主机,然后与其他人共享。 我使用此选项来创建在具有GUI的Ubuntu上运行的经纪帐户登录实例。 对于研究,交易算法和数据存储,我使用的是无gui * nix实例。

我花了一些时间在ESXi虚拟机管理程序上,这真让人不愉快。 事实证明,它仅仅是一个基于* nix的虚拟机管理程序,而且不幸的是,它对硬件要求很高。 我无法使用它的最新版本,因为最新版本不支持我的网卡硬件。 ESXi还不支持网络路由,因此我不得不设置单独的虚拟主机,以将流量路由到其他虚拟主机。 多么痛。

然后我搬到Proxmox VE,那很棒。

如果您突然陷入那种特别的赶时髦的人的地狱,我强烈推荐hetzner手册。 这本特别的出色手册,为使用端口转发和DHCP的NAT后的虚拟主机配置网络。 这足以设置所有内容并节省数周的谷歌搜索时间。

与AWS或数字海洋相比,拥有自己的主机的利弊显而易见。

无论如何,这是一件很酷的运动,回味无穷,毕竟一切正常。