响应式微服务 in java 译 <十九> Are We Reactive?

是的,我们是。让我们看看为什么。

我们所有的交互都是异步的。它们使用异步和非阻塞的HTTP请求和响应。此外,由于OpenShift服务,我们将请求发送到一个虚拟地址,这使您具有弹性。服务在一组吊舱之间平衡负载。我们可以通过调整 Pod的数量或使用自动缩放来轻松地上下缩放。我们也有复原力。由于 health check,我们有一个故障转移机制,确保我们总是有正确数量的 Pod 运行。在消费者方面,我们可以使用各种弹性模式,例如超时、重试或断路器,以保护微服务不受故障的影响。因此,我们的系统能够在负载和面对故障时及时处理请求:我们是Reactive!

任何系统使用了 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/

110506_9gQF_2277632.png

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

223108_3TsV_2277632.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值