7.23 将文件上传至云服务器
先注册,个人类型,实名认证,绑定支付方式,三个工作日审核。
除此之外再看一下SDK中的java SDK。
演示:
-
立即添加是指添加的对象存储的空间,一般是点击左边的存储空间。
一种类型的资源创建一种对应的空间。
内容管理里面可以查看文件
使用下面的域名来访问:
七牛云导包:
自定义配置,使我们的程序更加灵活:
配置密钥
七牛云用户头像,密钥管理即可查看
1、 表示用户的身份
2、对上传的内容进行加密
还要配置空间域名:
处理上传头像的逻辑:
因为有表单,我们可以直接采用客户端上传,表单直接提交到七牛云。不用原本的上传方法了。还有原本获得图片的方法也被废弃了。
表单是采用异步的方式提价给七牛云。
接着上传成功之后,我们应该对userb表中headerUrl进行更新,改为七牛云的路径,这是我们的服务器做的,而且是异步的。
更新头像的链接
[图片上传失败...(image-5d3dd7-1581593152735)]
处理表单setting.xml
表单异步提交,并且内附上传凭证。
将之前的处理逻辑清理掉:
[图片上传失败...(image-339dd8-1581593152735)]
补充两个进行传输时需要的数据:
[图片上传失败...(image-987963-1581593152735)]
表单处理完成,需要进行异步提交
创建一个单独的setting.js文件
页面加载完之后给form绑定一个事件,
提交的函数最终结尾部分是return false,意思是上面的逻辑已经完成了了提交的功能了,因此后面不用再继续纪念性提交了,如果不这么写,还会执行正常的form表单提交。
$.ajax可以设置更多的异步请求的参数。
..post其实是对上面内容的简化。
在七牛云的开发者路径里面找客户端上传路径:
[图片上传失败...(image-7193b2-1581593152735)]
ProcessData:false表示不要将表单的数据转化成字符串。
默认情况下提交表单。浏览器会将表单的内容转换成字符串提交给服务器。但是上传文件不应该专换成字符串。
ContentType:false 表示不让jquery设置上传的类型,浏览器会自动进行设置。设置类型的话会影响浏览器对文件边界的设置。
真是666
[图片上传失败...(image-e6d670-1581593152735)]
[图片上传失败...(image-fd1025-1581593152735)]
- 接下来演示一下服务端直传
重构分享功能
[图片上传失败...(image-7e422b-1581593152735)]
我们不再需要下面的这个方法了,因为我们是通过七牛云来进行获取。
[图片上传失败...(image-d0bcf1-1581593152735)]
然后是消费者:
消费事件,也就是向七牛云传递内容。
[图片上传失败...(image-79d2a0-1581593152735)]
Kafka是 线程安全的吗?
在下面启动定时器,但是得找一个地方停止:
Future里面封装了定时器的状态,并且它还可以负责停止定时器。
[图片上传失败...(image-e4f989-1581593152735)]
定时器执行完任务之后一定要结束,还有就是可能定时器执行任务失败了。
[图片上传失败...(image-f88986-1581593152735)]
[图片上传失败...(image-58412f-1581593152735)]
[图片上传失败...(image-1993f-1581593152735)]
[图片上传失败...(image-383598-1581593152735)]
[图片上传失败...(image-87418e-1581593152735)]
[图片上传失败...(image-171b5a-1581593152735)]
7.27 优化网站的性能。
[图片上传失败...(image-36f842-1581593152735)]
没听明白十分钟所有的讲解是什么意思?为什么缓存没有的时候他不访问数据库就认为别人没有登陆。
二级缓存的数据访问图:
[图片上传失败...(image-40b293-1581593152735)]
缓存有基于大小和基于使劲按淘汰的策略。
有的是按照使用率进行淘汰,有的是按照事件先后进行淘汰。
接下来利用缓存提高性能。优化热门帖子列表。
[图片上传失败...(image-fb4298-1581593152735)]
里面有这个软件对应的手册。
[图片上传失败...(image-359012-1581593152735)]
我们没有使用spring集成的caffeine而是使用单独的软件,因为spring集成的所有缓存都是使用统一的一套配置,包括缓存时间,缓存大小等,这是不合理的。
[图片上传失败...(image-330ec3-1581593152735)]
再来自定义一些参数。
声明一下缓存空间和缓存时间
[图片上传失败...(image-71826f-1581593152735)]
缓存的更新有两种方式,时间到了被清空,还有就是发生了变化,进行更新。
接下来来优化业务方法:
我们缓存帖子列表以及总的帖子行数
所有的缓存都是按照key-value的形式进行缓存。
[图片上传失败...(image-f1e76c-1581593152735)]
[图片上传失败...(image-b8ebe5-1581593152735)]
[图片上传失败...(image-ce3678-1581593152735)]
CacheLoader是关于如何查数据。
[图片上传失败...(image-ecbc44-1581593152735)]
[图片上传失败...(image-17f5e8-1581593152735)]
[图片上传失败...(image-ba523e-1581593152735)]
[图片上传失败...(image-13183d-1581593152735)]
测试一下:
[图片上传失败...(image-358220-1581593152735)]
[图片上传失败...(image-a16373-1581593152735)]
先注释掉缓存的部分,进行压力测试。
压力测试工具:
[图片上传失败...(image-a39470-1581593152735)]
[图片上传失败...(image-d092c1-1581593152735)]
[图片上传失败...(image-2693d0-1581593152735)]
先启动我们的服务端,因为我们的压力测试是使用这个工具模拟客户端。模拟很多人同时访问的情况。
[图片上传失败...(image-1fa894-1581593152735)]
[图片上传失败...(image-53e8f1-1581593152734)]
创建多个线程才能模拟大量的用户。
[图片上传失败...(image-d9c4d5-1581593152734)]
[图片上传失败...(image-bfe026-1581593152734)]
设置请求:
[图片上传失败...(image-6df960-1581593152734)]
[图片上传失败...(image-b34be6-1581593152734)]
让各个请求之间设置一些间隔,否则就是i完全没有间断地访问服务器。
0-1秒地间隔:
[图片上传失败...(image-2f54f2-1581593152734)]
监听器:
[图片上传失败...(image-dd254c-1581593152734)]
主要看吞吐量,也就是每一秒服务器能够处理地请求数量。
[图片上传失败...(image-763f87-1581593152734)]
[图片上传失败...(image-866beb-1581593152734)]
利用电脑地瓶颈点去进行压力测试!!!
点击下面这个清空之前地数据:
[图片上传失败...(image-ebf434-1581593152734)]
[图片上传失败...(image-2056fe-1581593152734)]
但是可能会出现异常,因为tomcat可能处理不了这么多的请求。