响应式微服务 in java 译 <十六> Deploying a Microservice in OpenShift

Deploying a Microservice in OpenShiftjava

是时候向OpenShift部署一个微服务了。咱们将要部署的代码包含在代码存储库的OpenShift/hello-microservice-OpenShift目录中。VER-TIC很是接近于咱们以前开发的Hello微服务(HTTP):react

此代码不依赖于特定的OpenShift API或构造。它是您的应用程序,就像您在机器上开发的应用程序同样。Java代码与部署选择的分离必须是通过深思熟虑的设计选择,以使代码可以在任何云平台上运行。浏览器

咱们能够手动建立全部的OpenShift实体,可是让咱们使用由Fabric 8提供的maven插件(https://maven.work8.io/),这是一个面向Kubernetes的端到端开发平台。若是您打开头.xml文件,您将看到这个插件是在OpenShift配置文件中配置的,并与Vert.xMaven插件协做,以从新访问OpenShift entities。缓存

要将咱们的微服务打包并部署到OpenShift,启动:服务器

这个命令与您的OpenShift实例交互(您已经在该实例上用oc登陆)来建立一个构建(使用源代码镜像构建策略)并触发它。第一次构建可能须要一些时间,由于它须要检索生成器镜像。不要担忧--一旦缓存了全部内容,构建就会建立得更快。构建的输出(和镜像)由部署协商使用,部署协商也是由Fabric8Maven插件建立的。默认状况下,它建立一个Pod。服务也是由插件建立的。您能够在OpenShift仪表板中找到全部这些信息,如图5-4所示.微信

默认状况下,Fabric 8 Maven插件不会建立路由。可是,咱们根据它的描述(src/main/works 8/route.yml)建立了一个。若是在浏览器打开 http://hello-microservice- reactive-microservices.192.168.64.12.nip.io/Luke,咱们将看到相似下面的:maven

hello-microservice-1-9r8uv 是服务于请求的Pod 服务的名称。微服务

Service Discoveryui

如今咱们已经部署了Hello微服务,让咱们从另外一个微服务中使用它。咱们将在本节中部署的代码包含在代码存储库中的OpenShift/hello-microservice-Customer-OpenShift目录中。插件

要使用微服务,咱们首先必须找到它。OpenShift支持一种服务发现机制。服务查找可使用环境变量、DNS或Vert.x服务发现来完成,咱们在这里使用了Vert.x服务发现。xml项目被配置为导入vert.x服务发现、Kubernetes服务导入器和服务器端服务发现。您没必要在提供者端显式注册服务,由于Fabric8Maven插件为咱们声明了一个服务。咱们的消费者将取回这个OpenShift服务,而不是Pod。

在start方法中,咱们使用服务发现来查找hello微服务。而后,若是服务可用,咱们启动HTTP。在OpenShift中部署响应性微服务服务器,并在检索到的WebClient上保留一个引用。咱们还将配置传递给WebClient,并禁用“保持活动”设置(几分钟后咱们将看到缘由)。在InvokeHelloMicroservice中,咱们没必要将端口和主机传递给rxSend方法(就像咱们之前作的那样)。实际上,WebClient被配置为针对hello服务:

在终端中,导航到OpenShift/hello-microservice-consumer-OpenShift目录,使用如下目录构建和部署此使用者:

在OpenShift仪表板中,您应该看到第二个服务和路由(http://bit.ly/2o4xaSk)。若是您打开与hello-consumer service(http://bit.ly/2p2aHTK)关联的路由,您应该会看到:

您可能会看到503错误页,由于POD还没有启动。只需刷新,直到找到正确的页面。到目前为止没什么好惊讶的,由于显示的服务返回 value 老是指示相同的Pod(由于咱们只有一个)。

https://developers.redhat.com/promotions/building-reactive-microservices-in-java/

有什么讨论的内容,能够加我微信公众号:

相关文章
相关标签/搜索