0

我是使用 Blazegraph 的新手,在过去的几个月里,我一直在本地使用它作为项目的一部分进行开发。我目前正在尝试在线托管我的三重商店的实例,并且已经到了我迷失在圈子里的地步。

我的应用程序使用 spring-boot API 来管理与 Triplestore 的任何交互。我最初使用 docker-compose 在我的本地机器上托管,并且能够毫无问题地查询和更新三重存储。这是我使用的 docker-compose.yml 文件:

version: '3'
services:
  triplestore:
    image: lyrasis/blazegraph:2.1.5

    ports:
      - "9999:9999"
    restart: on-failure
    networks:
      - jacks-net
  api:
    build: .
    ports:
      - "8080:8080"
    networks:
     - jacks-net
networks:
  jacks-net:

当谈到生产时,我尝试使用 Heroku 部署我的 docker-compose 应用程序,发现 Heroku 似乎不支持这一点。我只能使用以下 Dockerfile 在 Heroku 上托管 API:

FROM openjdk:8-jdk-alpine
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

我还尝试使用 Docker 和 Heroku 分别托管 API 和 Triplestore,用于 spring-boot API,这似乎工作正常。我试图使用Heroku 的可执行 jar 功能来托管 Blazegraph 提供的 bigdata.jar 文件,但没有成功。

我非常感谢一些关于最佳前进方式的建议和指导。如何托管 Blazegraph 实例以与我的 Spring Boot API 一起使用?我可以使用我在本地使用的 docker-compose.yml 文件吗?

在此先感谢您的帮助 :)

4

1 回答 1

0

一种简单的方法是在 AWS 上使用 Amazon Elastic Compute Cloud (EC2) 实例。

只需在 Linux VM 上安装 docker-compose,从那里运行 docker-compose 文件,然后使用弹性 IP 地址和 Cloudflare 进行安全的 HTTPS 连接。

如果您最终需要更好的可扩展性,您可以将 Blazegraph 实例卸载到它自己的 VM 上,然后转移到 API 的容器服务。

还值得注意的是,Blazegraph 现在已弃用,开发人员已加入亚马逊并成为亚马逊海王星。

于 2020-04-06T11:20:54.613 回答