发表于: 2017-10-28 23:30:15

1 746


今天完成的事情:

今天首先把思路整理了一遍,正常应该是用cookie去验证登录,session去验证是否登录防止进入首页二次登录

1.把拦截器类改了,cookie验证

    @Override

    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {

//        检验cookie

        boolean flag=loginCookie.checkCookie(request);

        if (flag==false){

            response.sendRedirect(request.getContextPath()+"/jsp/login.jsp");

            return false;

        }

        return true;

    }

2.修改controller的首页,首先验证session有没有值,有的话说明已经登录,不用在自动登录了,假如没有sessin,说明还未登录,就要验证cookie去自动录,假如cookie也不成功,就进入未登录首页

验证session

if (session!=null&&session.getAttribute("infoidloginat")!=null) {

    model.addAttribute("loginLoginInfo", studentService.selectLoginInfoByInfo_id(loginStudent.loginStudent(request).getID()));

    model.addAttribute("StudentPicture", loginStudent.loginStudent(request).getPicture());

学习jmeter

下载jmeter,配置环境变量

 

配置

新建线程组

 

 

 

 

 

最终效果

 

第一次结果

测并发.并发数为4000时超过5

 

 

测出来的值好像很不稳定啊

我这里并发在150的时候比较稳定,超过170就会访问错误

3.TPS事务处理系统即:Transaction processing systems (TPS) ,是在数据(信息)发生处将它们记录下来,通过OLTP产生新的信息,将信息保存到数据库中供其他信息系统使用,提高事务处理效率并保证其正确性。

直接下载解压,然后配置

        QPSTPS:每秒钟request/事务 数量

        并发数: 系统同时处理的request/事务数

        响应时间:  一般取平均响应时间

4.jmeter

 线程组(Thread group):线程组的控件允许:

 Set the number of threads: 设置线程数

 Set the ramp-up period:设置过渡时期

Set the number of times to execute the test:设置执行测试的次数

每个线程将完全独立地执行测试计划,完全独立于其他测试线程。多个线程用于模拟与服务器应用程序的并发连接

Samples 请求总数,线程*循环数

Average 平均请求时间,单位毫秒

Min 最小请求时间

Max 最大请求时间 

Std.Dev. 方均差,(响应时间的标准方差),如果该值很大,那么MinMax的参考意义不大

Error % 错误率

Throughput 吞吐量(每秒请求数)。可以简单的理解为,该值越大,性能越好。请求总数/总时间

后面两个分别接受的数据kb/s、发送数据kb/s

TPS Transaction per Second ,每秒事务数,一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程

5.怎样算压挂了?

错误率5%  或者 响应时间超过5S     我们公司的要求是90%线不能超过200  

6.学习memcache

  学习Memcache缓存的概念.,大佬讲的非常好,直接贴过来

简单一点讲,实际执行效果就是当我们需要去操作数据库时,

 

  if(在缓存空间中找不到该数据,那么就去数据库中找){

        if(在数据库中也找不到){

           直接返回并提示没有该值

        }else{

           在数据中找到了数据!;

           在返回结果时,一并把数据放入缓存

        }

  }else{

    直接在缓存中找到数据,直接返回.避免了对数据的操作从而缩短响应时间!

  }

安装memcache

d:\memcached memcached.exe -d install

启动服务

d:\memcached> memcached.exe -d start

默认端口11211

 

7.安装telnet

https://jingyan.baidu.com/article/ae97a646b22fb6bbfd461d19.html

 

里面只有客户端,没有服务端,坑爹了

测试telnet

https://jingyan.baidu.com/article/f79b7cb310b6079144023e8f.html

使用memcache要在项目中添加依赖,但是maven仓库里面没有,这个时候我们要自己下载jar包然后添加依赖

http://blog.csdn.net/odeviloo/article/details/51828650

mvn install:install-file -Dfile=F:\mavenproject\task6\jnshu\java_memcached\slf4j-simple-1.6.1.jar -DgroupId=com.danga  -DartifactId=java-memcached  -Dversion=2.6.6 -Dpackaging=jar

测试通过

talnet查看memcache里面的键值

8.序列化

目的:1、以某种存储形式使自定义对象持久化

2、将对象从一个地方传递到另一个地方。

3、使程序更具维护性。

少个依赖

    <dependency>

      <groupId>commons-pool</groupId>

      <artifactId>commons-pool</artifactId>

      <version>1.6</version>

    </dependency>

明天计划完成的事情:

明天使用memcache,然后压测

1.我重新设置login-at的时候,一直重新设置cookie不成功,最后发现我实际上是新建了一个loginInfo对象,而不是原来的我登录的loginInfo.所以我就要根据cookie信息把我现在登录的loginInfo对象查出来,然后再更新login_at

遇到的问题:

 test包错误

少个依赖

    <dependency>

      <groupId>commons-pool</groupId>

      <artifactId>commons-pool</artifactId>

      <version>1.6</version>

    </dependency>

收获:完成任务五,学习jmeter.memcache

 

 



返回列表 返回列表
评论

    分享到