第七章(二)

7.23 将文件上传至云服务器

图片.png

先注册,个人类型,实名认证,绑定支付方式,三个工作日审核。

图片.png

除此之外再看一下SDK中的java SDK。


图片.png

演示:

  1. 立即添加是指添加的对象存储的空间,一般是点击左边的存储空间。


    图片.png

    图片.png

    一种类型的资源创建一种对应的空间。

图片.png

内容管理里面可以查看文件


图片.png

使用下面的域名来访问:


图片.png

七牛云导包:


图片.png

自定义配置,使我们的程序更加灵活:
配置密钥
七牛云用户头像,密钥管理即可查看
1、 表示用户的身份
2、对上传的内容进行加密


图片.png

还要配置空间域名:


图片.png

处理上传头像的逻辑:


图片.png

因为有表单,我们可以直接采用客户端上传,表单直接提交到七牛云。不用原本的上传方法了。还有原本获得图片的方法也被废弃了。

表单是采用异步的方式提价给七牛云。


图片.png

接着上传成功之后,我们应该对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可能处理不了这么多的请求。

你可能感兴趣的:(第七章(二))