响应式web(一):什么是响应式web,异步调用,callback的本质,servlet3的异步
Reactive
同步与异步
传统的web模型 “命令式编程”:阻塞式模型,一个请求发过来,也许你会开启新的线程,但最后需要等待完成所有操作之后,才能返回response。
一个一个的操作组成了整个业务线,操作之间有先后顺序。所有具有先后顺序的操作,都在同一个线程内。
微服务:开启一个新的线程A去请求别的服务,A线程要等待业务结果返回之后,才能继续执行下面的业务逻辑。这是阻塞的。
Tomcat的NIO异步网络
网络连接的线程池,作用是和客户端建立连接:BIO,NIO;你也可以用多路复用器
但是到了Tomcat之后,业务线程要阻塞地等待业务处理结果,才能返回。
固定线程:连接线程与业务线程1:1的比例,这样的模式的缺陷是:
每开启一个线程,需要1024KB的栈内存开销;(64位 jdk8下)
500个并发请求,在JVM至少需要占用500M内存,这还是没干活的情况下。如果栈内存满了,会stack over flow,整个JVM的栈就挂了。
当线程个数越多,系统响应的时间会越长。
如何具有弹性?用线程池。
轮询/长轮询
长连接是客户端和服务端同时设置才生效,长轮询是服务端编程处理手动挂起请求,与客户端无关。
长轮询:http可以保持90s,90s还没有返回的话,需要续租。这样就用http协议伪造了一个假的长连接。
这就是响应式的web。响应的是谁?响应的是客户端。
keep-alived:复用的TCP的连接通道,http复用了tcp连接。http是无状态的,并不是复用的http连接。
长轮询
SSE:Server sent event,服务器发送事件。服务器给我推消息,我就没法给服务器推消息了。
传统的sevlet api,SSE:
抛一个线程,实际上并不是异步,因为还要等后面的线程返回数据,才能继续
观察者模式
你要有一个Observer对象,有一个Subject对象。Observer作为观察者,观察有没有新的事件发生。
要有一个观察者里面存了List,集合里面存放事件。
A是一个线程组,B也是一个线程组。A想要吃饭,告诉观察者。观察者让B做饭。B做完饭返回,A再去观察者那里拿。
每一个线程都在做自己该做的事,解耦。线程之间通过观察者通信。
两个线程组的连接数量是不对等的。
线程池是独立的,相互之间不影响,这样就不会因为某个业务阻塞。
懂了这个原理,然后我们就可以开始引入响应式的框架webflux了。
命令式编程与响应式
服务器推技术,Servlet3.0与3.1…
响应式web(一):什么是响应式web,异步调用,callback的本质,servlet3的异步相关推荐
- 移动WEB开发五、响应式布局
零.文章目录 文章地址 个人博客-CSDN地址:https://blog.csdn.net/liyou123456789 个人博客-GiteePages:https://bluecusliyou.gi ...
- 响应式web设计_将响应式Web设计超越视觉
响应式web设计 In this episode of the Versioning Show, David and Tim are joined by Chris Ward, a technical ...
- 响应式HTML网页开发,web开发中的响应式网页设计
概念 响应式网页设计最初是由 Ethan Marcotte 提出的一个概念:为什么一定要为每个用户群各自打造一套设计和开发方案?Web设计应该做到根据不同设备环境自动响应及调整.当然响应式Web设计不 ...
- 下一代响应式Web设计:组件驱动式Web设计
自从著名设计师 Ethan Marcotte(@beep)在 A List Apart上发表了一篇名为< Responsive Web Design>的文章之后,响应式网页设计(RWD,即 ...
- 各种风格简洁单页响应式html5模板_简洁 响应式 单页 跳转 设计 案例 源码340多套订餐企业模板高大尚响应式网站模板html5网页静态模板Bootstrap扁平化网站源码css3手机seo自适响
各种风格简洁单页响应式html5模板_简洁 响应式 单页 跳转 设计 案例 源码340多套订餐企业模板高大尚响应式网站模板html5网页静态模板Bootstrap扁平化网站源码css3手机seo自适响 ...
- html5响应式导航条,10个响应式设计的导航菜单源码-附教程
10个响应式设计的导航菜单源码-附教程 Sponsor 在2013年里,响应式Web设计将会开始普及,我们应该学习这些新技术,尤其作为网页设计师和前端开发人员,学习CSS3样式表和HTML5是必不可少 ...
- 南京html5响应式网站,HTML5响应式布局的设计方法和响应式前端优化
作为一名优秀的web前端人员,不懂响应式布局怎么可以呢? 今天跟大家分享web前端开发和设计的干货:关于响应式布局的设计方法和响应式前端优化. 我们都知道,目前主流的pc屏幕的分辨率都是1366*76 ...
- 怎么在服务器端做响应式布局,关于响应式布局的设计方法和响应式前端优化
原标题:关于响应式布局的设计方法和响应式前端优化 作为一名优秀的web前端人员,不懂响应式布局怎么可以呢? 今天跟大家分享web前端开发和设计的干货.关于响应式布局的设计方法和响应式前端优化. 我们都 ...
- 标识响应式html,第一个html5+响应式页面
闲来无聊研究研究响应式,对html5.响应式一知半解的. 废话少说,直接上代码 1.添加meta标识:大多数移动浏览器将HTML页面放大为宽的视图(viewport)以符合屏幕分辨率.禁止缩放,使用设 ...
- CSS - 响应式布局(二)响应式栅格系统
目录 响应式栅格系统 栅格 栅格系统 响应式栅格系统 BootStrap响应式栅格系统 简单说明 利用SCSS实现BootStrap的响应式栅格系统 响应式栅格系统 栅格 在弄清楚响应式栅格系统前,我 ...
最新文章
- QLibrary 动态加载外部库文件
- proxool数据库连接池用法
- 2021年东城区各学校高考成绩查询,2020年东城区高三一模成绩及高中排名
- 用 matlab 爬取期刊影响因子
- FCN:Fully Convlutional Networks for semantic segmentation要点
- Hadoop hdfs编程案例和java交互
- 闭合导线计算matlab代码,【求助】闭合导线简易平差Matlab代码需要大神帮忙
- 新商用密码产品认证梳理——标准和材料对比
- [Sql2008错误问题] 配置系统未能初始化 0x84B10001
- 博思得标签打印机驱动_博思得 Postek 打印机驱动下载
- 计算机应用有关的论文,关于计算机应用毕业论文范文精选
- react native 8081 端口号被占
- Linux下显示IP地理位置信息的小工具—nali(很强大)
- php生成各种验证码
- 纪录片拍摄前期准备内容
- NR RLC Protocol General and Procedure
- ANSYS-材料的选择
- Docker查看正在运行的容器创建时的命令
- 信息安全技术小测试08设备与环境安全
- 专有钉钉下载(windows、IOS、Android)地址
热门文章
- POJ - 3189 Steady Cow Assignment(二分图多重匹配)
- HDU - 1151 Air Raid(最小路径覆盖-二分图最大匹配)
- 华三交换机mode是什么意思_交换机中相关术语代表什么意思,有必要弄清楚,赶紧收藏...
- 区间第K大(划分树)
- cocos2d-x游戏开发(六)自动释放池
- 进程间通信 - 邮槽实现
- Linux网络编程 | Socket编程(一):Socket的介绍、UDPSocket的封装、UDP服务器/客户端的实现
- delete后加 limit是个好习惯么 ?
- RabbitMQ负载均衡(2)——HAProxy
- MPAI正式启动端到端的AI编码标准