Maven工具链和heroku /云部署

问题描述

这将是一个广泛的话题,请耐心等待。因此,我建立了一个微服务应用程序,最初是出于业余爱好,现在投入使用的几个月中,我做了一些有用的事情。因此,到目前为止,我在Maven和Eureka客户端上使用了STS(弹簧工具)。 我有一个相互交谈的独立微服务,以及一个将结果呈现给您的UI微服务。这是一个页面应用程序,我将放下结构(GitHub存储库也相同):

--my-app
  --my-microservice-discovery
  --my-microservice-domain (jdk12)
  --my-microservice-searcher
  --my-microservice-orchestrator
  --my-microservice-ui
  --my-transferobjects (common jar not microservice)
  --pom.xml (my main module pom)

因此,这就是我在GitHub中处理的事情,我在my-app中创建了一个存储库,其中包含所有这些春季启动项目,在IDE中一切正常,现在是某些云提供程序的部署部分。我之所以选择Heroku,是因为我过去有过使用它的经验,也因为我无法在Google上进行这项工作(尽管他们现在正在采用有吸引力的入门方案)。从Google Cloud构建到私有GitHub存储库的连接很麻烦,但是Heroku的风格如此。

我决定去命令行,因为那是我必须在云上处理的方式,那是万事大吉的地方,在IDE很好管理的JDK版本之间我遇到很多依赖关系问题,但尚未为maven正确定义。

我仍然设法使本地构建成功(命令行),但是我必须进行一些硬代码配置才能为my-microservice-domain pom修复jdk12(如下所示),并对my-transfer对象进行类似修复,但是Lombok问题一无所知,为什么我必须为此项目专门提供jdk8。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>12</source>
                <target>12</target>
                <executable>/home/Downloads/jdk-12</executable>
            </configuration>
        </plugin>
    </plugins>
</build>

我的问题如下:

  1. 我们是否有一个工具链示例来处理此不同的JDK编译问题,我们是否始终需要提供JDK本地安装路径
  2. 如何在Heroku上部署它,如何知道我的jdk12在哪里,或者仅在pom中定义源/目标版本将在云上解决问题,而且Heroku还支持jdk12或Google云?
  3. 进行多仓库部署还是单仓库部署是一个好主意,但我仍然可以更改,但是我喜欢这种方式。
  4. 我知道我需要为每个微服务创建docker映像,但是有人首先提供了在本地或GitHub存储库中进行操作的教程,以便我可以看一些示例。
  5. 一旦我在每个微服务中添加了所有这些docer文件,是否足以部署其生产级别?我读了很多有关APIGateway,负载均衡器..它们适合我的体系结构的文章
  6. 我还在EurekaServer和Eureka / Feign客户端属性的所有地方都使用本地主机,它是否也可以在云上以相同的方式工作,并且Eureka服务器将能够像本地本地一样查找我的所有服务,而无需在云上进行任何配置更改? / li>
  7. 什么是更好的Google Cloud或Heroku,Google Cloud现在似乎有点麻烦。

这些是我的担心,请告知。

解决方法

好吧,我要回答我自己的问题,我做了一些阅读,上面提到了@cool,然后我最终采用了多种存储库的方式,并且实现了所需的东西。 我之所以选择Heroku仅仅是因为那里的操作简单,就像我的本地环境,以及像我的最新二进制文件这样的简单应用程序都没有问题。 我跟踪了几个链接,这些链接可用于设置我的Eureka serverclientProcfile,还可以从仪表板的Apps设置页面中获取一些环境变量direcrlt。 不用说,我还维护了多个配置文件(dev,prod,test),对于ui,我使用vaadin,因此需要在UI应用程序pom.xml中进行一些生产步骤。

我有点担心我的服务在heroku上没有活动而被终止的方式,以及现在彼此之间发现服务的问题。因此,我的eureka服务器报告了所有实例,但它们无法彼此联系。

现在我正忙于其他事情[即。修复错误],因为发布是一个月后。我将很快对此发布一个问题;)。