outputcache
早上在深圳图书馆自学JAVA,年龄大了,精力不如年轻的时候,早知道当初不选择土木工程,搞的我29岁还一事无成,想通JAVA是否改变命运,毕竟程序员的工资比较高,下面我学得IO流的知识点。
读取操作:
1.0-按照字节读取: len读取元素的个数,-1标识读完
int len;
byte[] bytes=new byte[1024];
while ((len= fis.read(bytes))!=-1){
os.write(bytes,0,len);
}
2.0-按照行读取:
readLine:读取一行
标志:字符串为null读取一行
len:一行数据
String len;
while ((len=bfr.readLine())!=null){
System.out.println(len);
}
流:字节流,字符流,缓存流
序列化流: 他继承InputStream OutputStream
1.0-对象序列化:对象以流的方式写入文件(写入的是字节)
1.0-writeObject
1.1-os.writeObject(ceshi);
1.2-对象要序列化接口(标志作用)
2.0-对象的反序列化:保存的文件,以流的方式读取出来
1.1-in.readObject()
3.0-Java对象的static,transient 修饰的属性不能被序列化。
流之间的转换(字节流转成字符流)
new OutputStreamWriter
今天,是Linux回炉的第六十四天
FastCGI
在看nginx的调优的时候正好看到FastCGI缓冲区,突然无法理解
于是有一个疑问,关于vue.js的生命周期的问题的。
我们之前遇到过一个项目,客户每次打开网页之后,停顿一段时间,客户再次触发网页该网页就会重新加载页面并且返回主页,无法保留客户所在的当前页面,我当时建议的是在vue的生命周期里考虑一下解决方案,后面还有mysql的limit分页也可以解决这个问题,大脑始终卡在客户端与FastCGI的缓冲区的关联上,我简单的查了一下资料
什么是FastCGI
首先,是个接口,高速接口,看到高速基本可以解释FastCGI的缓冲机制了
然后,是在http和动态语言之间的接口
在linux下fastCGI类似于进程
它是C/S架构
我理解的原理:
现在的web网页是静态和动态交织在一起的,所以客户端访问nginx的页面的时候,其网页动态和静态部分同时向nginx发出请求。
然后,nginx承担静态页面的工作,类似于一些框架内容展示部分。
而动态网页数据库填充部分由后端的,如python django:
def vote_get(request):
return HttpResponse(output)
动态调用则交给了FastCGI了。
所以,我现在认为FastCGI的缓冲区不是给客户的,是给nginx的,因为最终呈现给客户的是nginx服务。
fastcgi_connect_timeout 300; #指定链接到后端FastCGI的超时时间。
fastcgi_send_timeout 300; #向FastCGI传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI传送请求的超时时间。
fastcgi_read_timeout 300; #指定接收FastCGI应答的超时时间,这个值是指已经完成两次握手后接收FastCGI应答的超时时间。
fastcgi_buffer_size 64k; #指定读取FastCGI应答第一部分需要用多大的缓冲区,这个值表示将使用1个64KB的缓冲区读取应答的第一部分(应答头),可以设置为fastcgi_buffers选项指定的缓冲区大小。
fastcgi_buffers 4 64k; #指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答请求,如果一个php脚本所产生的页面大小为256KB,那么会分配4个64KB的缓冲区来缓存,如果页面大小大于256KB,那么大于256KB的部分会缓存到fastcgi_temp指定的路径中,但是这并不是好方法,因为内存中的数据处理速度要快于磁盘。一般这个值应该为站点中php脚本所产生的页面大小的中间值,如果站点大部分脚本所产生的页面大小为256KB,那么可以把这个值设置为“8 16K”、“4 64k”等。
fastcgi_busy_buffers_size 128k; #建议设置为fastcgi_buffer的两倍,繁忙时候的buffer
fastcgi_temp_file_write_size 128k; #在写入fastcgi_temp_path时将用多大的数据库,默认值是fastcgi_buffers的两倍,设置上述数值设置小时若负载上来时可能报502Bad Gateway
fastcgi_cache gnix; #表示开启FastCGI缓存并为其指定一个名称。开启缓存非常有用,可以有效降低CPU的负载,并且防止502的错误发生,但是开启缓存也可能会引起其他问题,要很据具体情况选择
fastcgi_cache_valid 200 302 1h; #用来指定应答代码的缓存时间,实例中的值表示将200和302应答缓存一小时,要和fastcgi_cache配合使用
fastcgi_cache_valid 301 1d; #将301应答缓存一天
fastcgi_cache_valid any 1m; #将其他应答缓存为1分钟
fastcgi_cache_min_uses 1; #请求的数量
fastcgi_cache_path #定义缓存的路径





