2019独角兽企业重金招聘Python工程师标准>>>

到目前为止,我们只在本地机器上部署了我们的微服务。当我们在云上部署一个微服务时会发生什么?大多数云平台都包含相应服务,使您的部署和操作更加容易。向上和向下扩展的能力以及负载平衡是一些常见的特性,特别适合于开发响应性微服务。在本章中,我们将看到如何使用这些特性(以及其他特性)来开发和部署响应性微服务。

为了说明这些好处,我们将使用OpenShift(https://www.open shi.org/)。然而,大多数现代云平台都包含了我们在这里使用的功能。在本章的末尾,您将看到cloud如何使每个人的响应式微服务变得容易。

What Is OpenShift?

RedHatOpenShift v3是一个开源容器平台。使用OpenShift,您可以部署在容器中运行的应用程序,这使得它们的构造和管理变得简单。OpenShift构建在Kubernetes之上(https://kubernetes.io/)

Kubernetes(图5-1中蓝色)是一个具有大量功能的项目,用于在Linux容器中大规模运行微服务集群。Google已经将十多年的经验包装成了Kubernetes。

OpenShift是在此经验的基础上构建的,并通过构建和部署自动化( 图5-1 绿色的)。例如rolling updates, canary deployments 和连续交付管道等用例都是免费提供的。

OpenShift有一些简单的entities,如图5-2所示,我们需要了解这些实体,然后才能让它工作。

Build Configuration

构建是创建容器映像的过程,OpenShift将使用容器镜像实例化组成应用程序的不同容器。OpenShift构建可以使用不同的策略:

Docker—从Dockerfile构建镜像

获取镜像(S2I)-从应用程序构建镜像,由OpenShift上的构建器创建

Jenkins Pipline-使用Jenkins Pipline(https://jenkins.io/doc/book/管道)构建映像,该管道可能包含多个阶段,如构建、测试和部署。

构建配置可以通过git推送、配置更改或依赖镜像中的更新自动触发,显然,还可以手动触发。

Deployment Con gurations

部署配置定义生成的镜像的实例化。它定义了用于创建容器的镜像以及需要保持活动的实例数。它还描述了何时应触发部署。部署还充当复制控制器,负责保持容器的存活。要实现这一点,需要传递所需实例的数量。所需实例的数量可以随时间进行调整,也可以根据负载波动进行调整(自动缩放)。

部署还可以指定健康检查,以管理滚动更新和检测死容器。

Pods

Pod是由一个或多个容器组成的一组。但是,它通常由单个容器组成。POD的编排、调度和管理委托给Kubernetes。Pod是可替换的,可以在任何时候被另一个实例替换。例如,如果容器崩溃,将生成另一个实例。

Services and Routes

因为Pod是动态实体(实例的数量会随着时间的推移而变化),所以我们不能依赖它们的直接IP地址(每个POD都有自己的IP地址)。服务允许我们通过使用服务虚拟地址,而不依赖于它们的地址来与Pod进行通信。服务在一组Pod前充当代理。它还可以实现负载平衡策略。

在OpenShift中运行的其他应用程序可以使用该服务访问PODS提供的功能,但外部应用程序需要一条路由。路由在主机名(如www.myservice.com)上公开服务,以便外部客户端可以通过名称访问该服务。

Installing OpenShift on Your Machine

抽象的概念够了了,在是行动的时候了。我们将使用minishift(https://github.com/minishi/minishi)在您的计算机上安装OpenShift。或者,您也可以使用OpenShift在线(https://www.openshi.com/dev预览/)或RedHat容器开发工具包v3(https://developers.redhat.com/Products/cdk/Download/)。

安装minishift(https://github.com/minishi/minishi#installa)需要一个虚拟机管理程序来运行包含OpenShift的虚拟机。根据您的主机操作系统,您可以选择超视镜;有关详细信息,请参阅迷你安装指南。要安装minishift,只需从minishift发布页面(https://github.com/minishi/minishi/version)下载操作系统的最新存档,将其解压到首选位置,并在OpenShift中添加DeployingReactiveMicroservices。将二进制文件移至PATH环境变量。安装后,使用以下命令启动minishift:

一旦启动,您应该能够连接到https://192.168.64.12:8443上的OpenShift实例。您可能必须验证SSL证书,用 developer/developer 登录。

我们还需要OpenShift客户机(Oc),这是一个用于与OpenShift实例交互的命令行实用工具。从https下载OpenShift客户端的最新版本://github.com/openshi/source/ReleaseS。将其解压缩到您喜欢的位置,并将oc二进制文件添加到PATH环境变量中。

然后,使用以下命令连接到OpenShift实例:

OpenShift有一个名为Project的命名空间概念。要为我们将要部署的示例创建项目,请执行:

在浏览器中,打开https://192.168.64.12:8443/控制台/project/reactive-microservices/。您应该能够看到这个项目,目前它并不是很有趣,因为我们还没有部署任何东西(图5-3)。

原文地址:

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

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

转载于:https://my.oschina.net/u/2277632/blog/1633249

响应式微服务 in java 译 十五 Microservices in OpenShift相关推荐

  1. 响应式微服务 in java 译 十二 service discovery

    2019独角兽企业重金招聘Python工程师标准>>> 之前的内容重点都是在讲构建微服务,但是这节都是关于构建系统,同样,一个微服务并不能提供服务--它们是通过系统来实现的.当您采用 ...

  2. 在Java中构建响应式微服务系统——第三章 构建响应式微服务

    第三章 构建响应式微服务 在本章中,我们将使用Vert.x构建我们的第一个微服务.由于大多数微服务系统使用HTTP进行交互,因此我们将以HTTP微服务作为开始.但是由于系统包含多个相互通讯的微服务,因 ...

  3. 阿里十年大牛神作《Spring响应式微服务实战》让你心服口服!

    Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container). Spring解决了开 ...

  4. 响应式微服务_低风险整体式微服务演进第三部分

    响应式微服务 在第一部分(第一部分)中,我们通过看一个具体的例子介绍了一种在不破坏当前请求流和业务价值的情况下将微服务引入我们的体系结构的策略. 在第二部分中 ,我们开始研究与我们的架构策略和目标相符 ...

  5. Spring WebFlux和Spring Cloud开发响应式微服务

    作者:Piotr Mińkowski 译者:大萝卜爱上小白菜 原文:https://dzone.com/articles/reactive-microservices-with-spring-webf ...

  6. 《深入理解 Spring Cloud 与微服务构建》第十五章 微服务监控 Spring Boot Admin

    <深入理解 Spring Cloud 与微服务构建>第十五章 微服务监控 Spring Boot Admin 文章目录 <深入理解 Spring Cloud 与微服务构建>第十 ...

  7. 《Spring响应式微服务》读书笔记

    Spring响应式微服务: Spring Boot 2 + Spring 5+Spring Cloud 实战 郑天民 著 2019.6出版 云原生基础理论 云原生所需要的能力和特征 The Twelv ...

  8. 响应式微服务_低风险整体式微服务演进第二部分

    响应式微服务 让我们潜入吧! 在上一篇文章(第一部分)中,我们为该博客设置了上下文. 基本上,当我们引入将微服务引入我们的体系结构的策略时,我们不能也不应破坏当前的请求流. 我们的"整体&q ...

  9. 响应式微服务_低风险整体式微服务演进第一部分

    响应式微服务 作为为期两天的微服务研讨会的一部分,我一直在思考如何解释整体应用分解以及向微服务过渡的方式. 这只是该材料的一小部分,但我想与您分享以获取反馈(在研讨会上,我们将更详细地介绍您是否应该拆 ...

最新文章

  1. 【组队学习】【28期】数据采集从入门到精通
  2. 支持快速精准纳米孔新型冠状病毒测序的ARTIC Network工作流
  3. TCP / IP协议 --- 用户层面
  4. hibernate mysql id 自增长 注解_hibernate Mysql 自增长 注解配置,表无关联的注解方式关联查询...
  5. 牛客 - 血压游戏(虚树+dp)
  6. 将一个数字划分成树状
  7. vue企业门户网站模板_6 个火爆 GitHub 的后台管理模板,快来收藏!
  8. DAHON 美国大行
  9. caffe目录结构 及 caffe源码文件说明
  10. Javascript 调用MSAgent
  11. 洛谷 P4704 太极剑
  12. xlrd,xlwt操作excel个人总结 自动化办公
  13. 170713 逆向-填数游戏
  14. rowid与rownum的含义是什么?
  15. IIS是不是相当于服务器?
  16. dev c++ 学习C语言+快捷键
  17. 用Python串口实时显示数据并绘图pyqtgraph(详细教程)
  18. iObit Driver Booster 8 驱动更新失败 只停留在 1%
  19. 飞扬的小鸟1.0测试版
  20. 安全环境中的WebSphere代理服务器路由功能

热门文章

  1. 乡村振兴种业使命-丰收节交易会·张桃林:种业谋定格局
  2. java正则过滤特殊字符
  3. VUE初长成【部分小记】
  4. SrpingCloud 之SrpingCloud config分布式配置中心
  5. C/C++程序语言概念
  6. 20141203图片Base64编码与解码
  7. Python开发入门与实战1-开发环境
  8. iOS7 UIKit Dynamics 的初步研究
  9. 线上分享 | 浅谈用户生命周期运营
  10. 产品新人的10字生存手册