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

Deploying a Microservice in OpenShift

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

1e1334bf0902ec8ca3bc24886582d044.png

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

我们可以手动创建所有的OpenShift实体,但是让我们使用由Fabric 8提供的maven插件(https://maven.work8.io/),这是一个面向Kubernetes的端到端开发平台。如果您打开头.xml文件,您将看到这个插件是在OpenShift配置文件中配置的,并与Vert.xMaven插件协作,以重新访问OpenShift entities。

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

b51925c4f3fc5be989a0b7b712ecd345.png

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

28b20a6f7b686323c7409ff80acc65ac.png

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

1b031626e904b591e1e83770e695883b.png

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。

02e2e86f104a9376c7787cf49fb70e4b.png

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

8cecd6cb8114dac405db08c324909e8e.png

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

f643a694fab82e4efa3c8967c107cbed.png

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

e3e6ec8e28b7e270881006adc2e55ac5.png

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

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

53cd744004bcd082a2d519f914b0d14a.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值