从JDK11新增HttpClient谈谈非阻塞编程模型_第1页
从JDK11新增HttpClient谈谈非阻塞编程模型_第2页
从JDK11新增HttpClient谈谈非阻塞编程模型_第3页
从JDK11新增HttpClient谈谈非阻塞编程模型_第4页
从JDK11新增HttpClient谈谈非阻塞编程模型_第5页
已阅读5页,还剩31页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 既有的HttpURLConnection存在许多问题 其基类URLConnection当初是设计为支持多协议,但其中大多已经成为非主流(ftp, gopher) API的设计早于HTTP/1.1,过度抽象 难以使用,存在许多没有文档化的行为 它只支持阻塞模式(每个请求它只支持阻塞模式(每个请求/ /响应占用一个线程)响应占用一个线程)jdk8及之前无jdk9 纳入孵化jdk10 改善jdk11 标准化JDK HttpURLConnectionApache HttpClientOkhttpSpring Rest TemplateSpring Cloud Feign将Jetty用作客户端使用Ne

2、tty库指定协议(http/1.1或者http/2)转发(redirect)代理(proxy)认证(authenticator)从HttpRequest的builder组建request请求URI请求method(GET, PUT, POST)请求体(request body)Timeout请求头(request header)http client可以用来发送多个http request请求可以被以同步或异步方式发送同步发送API阻塞直到HttpResponse返回异步发送API立即返回一个CompletableFuture当它完成的时候会获得一个HttpResponseCompletabl

3、eFuture是在java8中加入的,支持组合式异步编程多CPU多线程非阻塞(非阻塞(non-blockingnon-blocking)阻塞模型(blocking)Java IOJava NIO阻塞阻塞非阻塞非阻塞简单易用学习曲线陡峭浪费资源充分利用资源可处理大并发处理更更大的并发非阻塞让并行的进程线程,执行更多的IO主线程主线程(池)(池)工作线程1(池)工作线程2(池)1、注册一个回调函数2、数据到达后,调用回调函数接收客户端请求分发给worker匿名类lanbda表达式FutureCompletableFuture类reactive-streamsreactive-streams模型模型

4、客户端请求到达时,回调 连接上数据库时,回调 查询结果返回时,回调 根据查询结果,调用微服务校验数据返回时,回调 最终输出结果事件总线1234发布接收发布接收发布接收Publisher、Subscriber、SubscriptionBack PressureSPECIFICATIONreactive-streamsJDK FlowJDK FlowJDK11 HttpClient中的回调采用的是消息传递架构,具体用的是reactor-streams标准请求响应的body暴露为reactive streamshttp client是请求的body的消费者http client是响应的body的生产

5、者requestresponseHttp Client消费body生产body生产body消费body互联网Spring 框架的联合创始人兼 Pivotal 的首席工程师 Juergen Hoeller:迄今为止,Java 8 是 Java 历史上应用最广泛的平台版本。它的应用范围超过了 Java 6。但是,我们将会迎来一种破坏性的 Java 发布节奏。在可预见的未来,Java 8 将会作为我们的基准。整个生态系统都是或者将是以 Java 8 为基础的。2023 年之前,Java 8 会有来自业界许多利益相关者的支持承诺。因此,从一个保守组织的角度来看,Java 8 是一个很好的基准。刚刚发布的 Java 11 是 Java 的下一个长期支持版本,Hoeller 将其视为 Java 8 的替代方案。就像 Java 8 一样,它也得到了很多供应商的长期支持承诺,包括 Oracle、Azul、Red Hat、IBM 和 SAP,它们承诺会支持到 2023 年甚至更久。在此之后,下一个长期支持的发布版本将会是 2021

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论