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

Deploying a Microservice in OpenShift

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

此代码不依赖于特定的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,我们将看到类似下面的:

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

Service Discovery

现在我们已经部署了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/

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

猜你喜欢

转载自my.oschina.net/u/2277632/blog/1633375
今日推荐