当前位置: 首页 > news >正文

网站的内容管理系统怎么做软文网站

网站的内容管理系统,怎么做软文网站,绿色软件园,免费图片网站建设1. 前言最近写关于响应式编程的东西有点多#xff0c;很多同学反映对Flux和Mono这两个Reactor中的概念有点懵逼。但是目前Java响应式编程中我们对这两个对象的接触又最多#xff0c;诸如Spring WebFlux、RSocket、R2DBC。我开始也对这两个对象头疼#xff0c;所以今天我们就…1. 前言最近写关于响应式编程的东西有点多很多同学反映对Flux和Mono这两个Reactor中的概念有点懵逼。但是目前Java响应式编程中我们对这两个对象的接触又最多诸如Spring WebFlux、RSocket、R2DBC。我开始也对这两个对象头疼所以今天我们就简单来探讨一下它们。2. 响应流的特点要搞清楚这两个概念必须说一下响应流规范。它是响应式编程的基石。他具有以下特点响应流必须是无阻塞的。响应流必须是一个数据流。它必须可以异步执行。并且它也应该能够处理背压。背压是反应流中的一个重要概念可以理解为生产者可以感受到消费者反馈的消费压力并根据压力进行动态调整生产速率。形象点可以按照下面理解有没有背压的两种情形3. Publisher由于响应流的特点我们不能再返回一个简单的POJO对象来表示结果了。必须返回一个类似Java中的Future的概念在有结果可用时通知消费者进行消费响应。Reactive Stream规范中这种被定义为Publisher Publisher是一个可以提供0-N个序列元素的提供者并根据其订阅者Subscriber super T的需求推送元素。一个Publisher可以支持多个订阅者并可以根据订阅者的逻辑进行推送序列元素。下面这个Excel计算就能说明一些Publisher的特点。A1-A9就可以看做Publisher及其提供的元素序列。A10-A13分别是求和函数SUM(A1:A9)、平均函数AVERAGE(A1:A9)、最大值函数MAX(A1:A9)、最小值函数MIN(A1:A9)可以看作订阅者Subscriber。假如说我们没有A10-A13那么A1-A9就没有实际意义它们并不产生计算。这也是响应式的一个重要特点当没有订阅时发布者什么也不做。而Flux和Mono都是Publisher在Reactor 3实现。Publisher提供了subscribe方法允许消费者在有结果可用时进行消费。如果没有消费者Publisher不会做任何事情他根据消费情况进行响应。 Publisher可能返回零或者多个甚至可能是无限的为了更加清晰表示期待的结果就引入了两个实现模型Mono和Flux。4. FluxFlux 是一个发出(emit)0-N个元素组成的异步序列的Publisher,可以被onComplete信号或者onError信号所终止。在响应流规范中存在三种给下游消费者调用的方法 onNext, onComplete, 和onError。下面这张图表示了Flux的抽象模型Flux以上的的讲解对于初次接触反应式编程的依然是难以理解的所以这里有一个循序渐进的理解过程。有些类比并不是很妥当但是对于你循序渐进的理解这些新概念还是有帮助的。传统数据处理我们在平常是这么写的public List allUsers() {return Arrays.asList(new ClientUser(felord.cn, reactive),new ClientUser(Felordcn, Reactor));}我们通过迭代返回值List来get这些元素进行再处理(消费)这种方式有点类似厨师做了很多菜吃不吃在于食客。需要食客主动去来吃就行了(pull的方式)至于喜欢吃什么不喜欢吃什么自己随意怎么吃也自己随意。流式数据处理在Java 8中我们可以改写为流的表示public Stream allUsers() {return Stream.of(new ClientUser(felord.cn, reactive),new ClientUser(Felordcn, Reactor));}依然是厨师做了很多菜但是这种就更加高级了一些提供了菜品的搭配方式(不包含具体细节)食客可以按照说明根据自己的习惯搭配着去吃一但开始概不退换吃完为止过期不候。反应式数据处理在Reactor中我们又可以改写为Flux表示public Flux allUsers(){return Flux.just(new ClientUser(felord.cn, reactive),new ClientUser(Felordcn, Reactor));}这时候食客只需要订餐就行了做好了自然就呈上来而且可以随时根据食客的饭量进行调整。如果没有食客订餐那么厨师就什么都不用做。当然不止有这么点特性不过对于方便我们理解来说这就够了。5. MonoMono 是一个发出(emit)0-1个元素的Publisher,可以被onComplete信号或者onError信号所终止。Mono这里就不翻译了整体和Flux差不多只不过这里只会发出0-1个元素。也就是说不是有就是没有。象Flux一样我们来看看Mono的演化过程以帮助理解。传统数据处理public ClientUser currentUser () {return isAuthenticated ? new ClientUser(felord.cn, reactive) : null;}直接返回符合条件的对象或者null。Optional的处理方式public Optional currentUser () {return isAuthenticated ? Optional.of(new ClientUser(felord.cn, reactive)): Optional.empty();}这个Optional我觉得就有反应式的那种味儿了当然它并不是反应式。当我们不从返回值Optional取其中具体的对象时我们不清楚里面到底有没有但是Optional是一定客观存在的,不会出现NPE问题。反应式数据处理public Mono currentUser () {return isAuthenticated ? Mono.just(new ClientUser(felord.cn, reactive)): Mono.empty();}和Optional有点类似的机制当然Mono不是为了解决NPE问题的它是为了处理响应流中单个值(也可能是Void)而存在的。6. 总结Flux和Mono是Java反应式中的重要概念但是很多同学包括我在开始都难以理解它们。这其实是规定了两种流式范式这种范式让数据具有一些新的特性比如基于发布订阅的事件驱动异步流、背压等等。另外数据是推送(Push)给消费者的以区别于平时我们的拉(Pull)模式。同时我们可以像Stream Api一样使用类似map、flatmap等操作符(operator)来操作它们。对Flux和Mono这两个概念需要花一些时间去理解它们不能操之过急。如果你对我的这种看法有不同的观点可以留言讨论多多关注码农小胖哥 获取更多干货知识。关注公众号码农小胖哥获取更多资讯
http://www.zqtcl.cn/news/169107/

相关文章:

  • 企业网站的意义公司网站建app
  • 网站设计模板免费国庆图片制作小程序
  • 包头焦点网站建设郑州包装设计公司
  • 建行官方网站首页做跨境电商亏死了
  • 河北智能网站建设平台卖链接的网站
  • 网站建设简单点的服装搭配网站建设策划书
  • 哪一个军事网站做的比较好今天第四针最新消息
  • 黄页网站推广app软件查企业公司用什么软件
  • 网站设计机构培训全自动网页制作系统源码
  • 外贸网站建设收益深圳建设厅官网
  • 跟网站开发有关的内容东莞市生态环境局
  • dw软件做的东西怎么在网站用网站备案抽查通过
  • 重庆建设集团网站首页wordpress主题inn
  • 对京东网站建设的总结湖北做网站的
  • 杭州网站开发后端招郑州工装定制
  • 网站搭建论文filetype ppt 网站建设
  • 个人做营利性质网站会怎么样如何引用网站上的资料做文献
  • 新网站制作市场泰安做网站哪家好
  • 常熟苏州网站建设flash如何制作网站
  • 电商网站都是用什么做的网站服务器维护方案
  • 简述企业网站建设的流程手机怎么自己做网页
  • 网站备案信息管理呼图壁网站建设
  • 网站建设学习资料开发一套软件需要多少钱
  • 大庆网站设计衡阳seo网站推广
  • 基层科普网站建设的现状自己做的网站怎样链接数据库
  • 网站建设工程师的职位要求化妆品行业网站开发
  • 做海报有什么素材网站知乎什么样的蓝色做网站做好看
  • 餐饮网站建设网站wordpress优酷视频插件下载
  • 什么网站做广告效果好wordpress中文cms
  • seo与网站优化广州洲聚网站开发