是的,咱们是。让咱们看看为何。java
咱们全部的交互都是异步的。它们使用异步和非阻塞的HTTP请求和响应。此外,因为OpenShift服务,咱们将请求发送到一个虚拟地址,这使您具备弹性。服务在一组吊舱之间平衡负载。咱们能够经过调整 Pod的数量或使用自动缩放来轻松地上下缩放。咱们也有复原力。因为 health check,咱们有一个故障转移机制,确保咱们老是有正确数量的 Pod 运行。在消费者方面,咱们可使用各类弹性模式,例如超时、重试或断路器,以保护微服务不受故障的影响。所以,咱们的系统可以在负载和面对故障时及时处理请求:咱们是Reactive!react
任何系统使用了 cloud 中异步非阻塞http,提供负载平衡和一些复原特性的就是响应式了吗?是的,但别忘了付出的代价。Vert.x使用一个事件循环来处理高级别的并发性,而且线程最少,显示出云本机特性。当使用依赖线程池的方法时,须要1)调优线程池以找到正确的大小;2)处理代码中的并发性,这意味着调试死锁、竞赛条件和瓶颈;3)监视性能。云环境是基于虚拟化的,当您有不少线程时,线程调度可能成为一个主要问题。安全
有许多非阻塞技术,但并不是全部这些技术都使用相同的执行模型来处理异步性质--咱们能够将这些技术分为三类:服务器
1.在后台使用线程池的方法而后您将面临调优、调度和并发挑战,将负担转移到操做。微信
2.使用另外一个线程回调方法-您仍然须要管理代码的线程安全,同时避免死锁和瓶颈。多线程
3.使用相同线程的方法,如Vert.x--您使用少许线程,并从调试死锁中解。并发
咱们是否可使用 cloud 中的消息传递系统来实现 reacvtive microservice系统?固然了!。咱们可使用在事件总线来构建咱们在OpenShift中的 reacvtive microservice。可是它不会显示由OpenShift提供的服务虚拟地址和负载平衡,由于它将由Vert.x自己处理。在这里,咱们决定使用http,设计的实现有不少种可能,用你想要的方式塑造你的系统!异步
Summary微服务
在本章中,咱们在OpenShift中部署了微服务,并了解了Vert.x和OpenShift特性是如何结合起来构建reacvtive microservice。将异步HTTP服务器和客户端、OpenShift服务、负载平衡、故障转移和消费者端弹性结合在一块儿,使咱们具有了 reacvtive system 的特色。性能
本报告侧重于reactive。然而,当构建一个 microservice 时,须要管理许多其余问题,如安全性、配置、日志记录等。大多数云平台,包括OpenShift,都提供服务来处理这些问题。
若是您想了解更多关于这些主题的信息,请查看如下资源:
·OpenShift网站。
·OpenShift核心概念。
·Kubernetes网站。
·OpenShift health check
原文地址:
https://developers.redhat.com/promotions/building-reactive-microservices-in-java/
有什么讨论的内容,能够加我微信公众号: