响应式微服务 in java 译 <二十> 总结

咱们在一块儿的旅程即将结束,但大家有许多新的途径须要探索。咱们在这份小报告中涵盖了不少内容,但确定没有涵盖全部内容!咱们刚刚触及了表面。在转向响应性微服务时,须要考虑更多的事情。Vert.x也不局限于微服务,能够处理大量不一样的用例。java

What Have We Learned?react

你在这份报告里学到了什么?首先,咱们从微服务和什么是响应性的微服务开始。咱们了解到reactive microservices 构成了响应式系统。咱们还看到了响应性编程如何帮助构建这些微服务。web

咱们发现了eclipse Vert.x,它是用于构建响应性微服务(其中包括许多其余事情)的工具包。Vert.x提供了一个完美的范例来拥抱 microservices:异步、做为一流的公民的failures,以及非阻塞。为了驯服异步开发模型,Vert.x将其功率与RxJava结合起来。咱们的发现始于http microservices,以及如何使用它们。虽然http一般在 microservices 中使用,可是当咱们直接引用其中的实例时,咱们也看到了它的一个参数。为了解决这个问题,咱们使用了在事件总线,并看到基于消息的microservices如何使您构建响反应的microservices,从而生成响应式系统。数据库

固然,一个microservice 并不能构建一个系统。为了构建系统,咱们必须使用服务发现。服务发现使得位置透明性和移动性成为多用户系统中的两个重要特性。咱们还涵盖了弹性模式,由于 microservice 系统是分布式系统,您须要为失败准备。apache

在最后一章中,咱们将咱们的microservices部署到了基于上的开源容器平台OpenShift之上。Vert.x和OpenShift的结合简化了反应性微服务的部署和执行,并使整个系统保持在正轨上。编程

那么,这就是结束吗?否。这只是第一阶段的结束。后端

Microservices Aren’t Easy浏览器

预计微服务将提升总体敏捷性。这不只是一个技术问题,也是一个组织问题.。若是您的组织不从组织角度接受microservices,那么任何技术都不会帮助您。安全

虽然建造microservices看起来很简单,但实际上还有不少事情要作。微服务系统是分布式系统,所以涉及分布式计算规律。失败也是不可避免的。每一个微服务都应该拥有它的数据,您一般须要几个持久性技术。服务器

为了构建多功能系统,有几个课题有待进一步研究。首先,为了启用所承诺的敏捷性,您将更频繁地部署不一样的子模块。所以,持续交货是关键。您还须要尽量自动化地实现您的服务器端的发布和部署。不要忘记,您的微服务是可替换的,不变的镜像传递是一个必须具有的特性来缩放。

可是,若是咱们部署的微服务是不可变的,咱们如何传递配置信息并可能从新配置它们?例如,如何更改日志级别、配置数据库位置和凭据、切换功能等等?配置是分布式系统中很是重要的一部分,在微服务中是很困难的。全部的系统都是不一样的,也没有灵丹妙药,可是有各类各样的解决方案,从环境变量到Git存储库和专用配置服务器。云平台也提供配置能力。为了减小这种多样性,Vert.x几乎能够从任何地方检索配置。

一旦部署和配置了微服务,就须要保持系统的正常运行。日志记录、度量和跟踪是设计和开发一个基于数据的系统时要记住的重要问题。您必须从您的微服务中检索记录的消息、度量和跟踪,以集中方式聚合它们,以启用相关性和可视化。虽然日志记录和监视一般被很好地理解,但分布式跟踪经常被忽略。然而,在微服务中痕迹是无价的,由于它们会帮助您识别瓶颈、微服务之间的关系,并给您的系统响一个良好的想法。

The Evolution of the Microservice Paradigm

微型服务是动态的,并且老是不断发展的。最近,无服务器的趋势,也被称为功能做为一项服务,正在得到许多吸引力。在这个新的范例中,您的部署单元是一个函数。这些函数接收和处理消息。在范式强调部署、日志记录和跟踪工具,可是促进了一个简单的开发模型,并提升了系统的可扩展性,由于您能够实例化许多函数实例,由于您须要处理负载。

http/2也在世界上取得了使人瞩目的成功。它提升了http 1.1的性能和可扩展性,而且容许多个请求复用单个tcp链接。它还提供双向通讯,GRPC是基于http/2的远程处理调用(Rpc)框架,提供高性能、高性能、安全、双向交互。它可以高效地链接数据中心和跨数据中心的服务,并使用插件支持负载平衡、跟踪、Health check和身份验证。它也适用于嵌入式设备、移动应用程序和浏览器。虽然rpc最初被认为是有害于microservice系统的,但它仍然很是流行。GRPC解决了传统rpc机制遇到的问题,例如阻塞调用和部分故障。可是,要注意,在提供者、用户和消费者之间共享契约(接口)可能会限制您的敏捷性。Vert.x提供http/2的服务器端和服务器。此外,它还可以建立和消费基于服务的服务。

Vert.x Versatility

虽然本报告侧重于响应式微服务,但这只是中的的一个方面。生态系统的丰富使得您可以开发出许多不一样的应用程序。因为它的执行模型,您的应用程序将是异步的,而且将接受无反应系统的魔法。

现代web应用程序为用户提供实时、交互式的体验.。信息被推送到浏览器并没有缝显示。Vert.x事件总线能够用做提供这种体验的主干。浏览器链接到事件总线并接收消息,还能够在后端或与链接到事件总线的其余浏览器上发送消息并与之交互。

物联网(物联网)是一个使人兴奋的领域,但也很是使人兴奋。智能设备使用了许多协议。mes常常必须从一个协议翻译成另外一个协议。Vert.x为客户提供了大量协议来实现这些翻译,而且它的执行模型可以处理构建物联网网关所需的高级别协议。

这两个例子说明了生态系统的丰富程度。Vert.x提供了无限的可能性,你负责的范围。您可使用您喜欢的编程语言和您喜欢的开发模型来调整系统。不要让框架控制-你是负责的。

 

About the Author

Clement·Esco(@clementplop)是红帽公司的首席软件工程师。他有好几个职业生涯,从学术职位到管理人员。目前,他正在担任一个长期的核心开发人员。他参与了涉及许多领域和技术的项目和产品,好比osgi、移动应用开发、连续交付和DevOps等。Clement 是许多开源项目的一个积极的决策工具,好比apache felix、iPOJO、智慧框架和eclipse Vert.x。

 

原文地址:

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

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

相关文章
相关标签/搜索