• 6年开发大神用4000字带你把响应式微服务架构一下子给吃透


    响应式微服务架构

    响应式编程(Reactive Programming)是相对于命令式编程的一种全新的编程模型,是基于数据流变化传播的编程范式。

    响应式编程具备快速响应、不可变性、高并发、异步非阻塞、规模扩展、代码可读性高等诸多优势。Java编程领域出现了众多基于响应式流规范的编程开发框架。

    本篇我们会从响应式编程动机、响应式编程基本概念、响应式宣言开始介绍,引出响应式编程的基本特性(数据流、背压等)和核心概念。

    Spring Boot 2.x微服务框架在Spring Boot 1.x的基础上,基于Spring 5 Reactor框架实现了响应式的微服务基底技术。Reactor框架是Spring家族在响应式编程领域的子项目,由Pivotal公司开发,实现了基于响应式流编程规范。Reactor最大的优势是与Spring生态的无缝集成,Spring WebFlux框架正是基于Reactor框架实现的。此外,本文还会介绍基于响应式流规范开发的类库实现,包括Java Flow API、RxJava、Vert.X等响应式编程框架。

    最后,我们会重点介绍WebFlux异步非阻塞Web框架(核心组件包括Flux、Mono、Scheduler等)和Spring Cloud Gateway项目。另外,还会介绍Spring WebFlux与Spring MVC在Web工作原理上的差异和关系,同时会说明WebFlux目前的主要使用场景及在生产环境下的使用局限性。

    响应式编程

    针对响应式编程,我们会介绍采用响应式编程的动机,并解释响应式编程的含义,然后讲解目前主流的响应式技术框架。

    响应式编程的动机

    当前大多数公司使用Spring或者Spring Boot 1.x技术栈开发后端业务的Web服务器。假设在正常情况下,我们将Tomcat线程池配置为200(最大并发线程数),如果每个人的请求响应时间在200ms以内,并且根据每个请求的超时时间、资源限制和其他因素,粗略估算后,我们得出一个结论,系统在单位时间内最高可以支持1000个用户同时在线访问业务资源。然而,当业务场景是支持一个促销活动时,可能会出现用户规模快速增长或流量(QPS)激增的情况。这时,Tomcat服务器会出现短期资源耗尽及性能急速下降的问题,Tomcat后台爆出大量的服务超时、资源不可用、网页刷新慢等异常,而用户的直观体验就是服务不可用。

    下面我们以Tomcat 7.x作为试验对象来模拟上述情景,使用BenchMark的方法比较客户端随着请求的增加对响应时间(延迟)、系统吞吐、负载均值等

  • 相关阅读:
    2022最新iOS证书(.p12)、描述文件(.mobileprovision)申请和HBuider打包及注意注意事项
    golang iris框架 + linux后端运行
    特拉斯成为英国首相后 “英镑危机”的风险正在上升
    C语言之函数详解
    【Linux系统化学习】进程的状态 | 僵尸进程 | 孤儿进程
    分类预测 | MATLAB实现PSO-CNN粒子群算法优化卷积神经网络数据分类预测
    2023USNews美国加州系大学排名
    美团面试:Redis怎么做高可用、高并发架构?
    论我是怎么摆烂的
    PG FULL_PAGE_WRITES MYSQL DOUBLE WRITE LOG
  • 原文地址:https://blog.csdn.net/guanshengg/article/details/126690442