发表于: 2017-10-15 23:48:51

1 754



今天完成的事情:

1. 重构代码(3),连接池的PreparedStatement

2. 研究了log4j2+slf4j

3.重构代码步骤有所改进

4.junit的事务回滚

5. 备案的事情(烦)

6. jmter的测试(用二级域名暂时解决备案问题)。



明天计划的事情

1. 重构代码(4)

2. 完成log4j2和slf4j和junit的事务回滚

3. 加上Memcache来做压力测试



遇到的问题:

1. 加上Memcache,在新建数据的时候同时维护好缓存(没有新建数据接口就自己加上,可以分成是压测JSP和Json接口两种方式) 

红字什么意思???什么叫维护好缓存??


收获:

1. 重构代码(3)

连接池的PreparedStatement

<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
<!--DBCP连接池可以缓存PreparedStatement,本质上就是缓存游标。
一个SQL语句,无论是Insert,Update,Delete还是Select都是游标操作,
只不过Select游标指向查询结果,而其余的指向修改的目标。
除了连接可以缓存,游标也是可以缓存的,主要是避免游标的反复创建。
虽然Oracle对完全相同的SQL可以共享执行计划,但是也需要去共享池查询这个SQL的信息(SQLHash值是否在共享池内)
缓存游标,则进一步优化,避免了反复查询共享池的操作-->
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize" value="20" />


2.重构代码步骤有所改进和log4j+slf4j

  1. 配置spring文件,数据库的连接文件
  2. 配置log4j+slf4j
  3. 写出DAO测试类


要求测试类里的输出必须是日志的形式。所以先研究log4j2+slf4j

pom.xml

<!--log4j2slf4j-->
<!--核心log4j2jar-->
<dependency>
 <groupId>org.apache.logging.log4j</groupId>
 <artifactId>log4j-api</artifactId>
 <version>2.8.2</version>
</dependency>
<dependency>
 <groupId>org.apache.logging.log4j</groupId>
 <artifactId>log4j-core</artifactId>
 <version>2.8.2</version>
</dependency>
<!-- slf4j核心包-->
<dependency>
 <groupId>org.slf4j</groupId>
 <artifactId>slf4j-api</artifactId>
 <version>1.7.21</version>
</dependency>
<dependency>
 <groupId>org.slf4j</groupId>
 <artifactId>jcl-over-slf4j</artifactId>
 <version>1.7.21</version>
</dependency>
<dependency><!-- 桥接:告诉Slf4j使用Log4j2 -->
 <groupId>org.apache.logging.log4j</groupId>
 <artifactId>log4j-slf4j-impl</artifactId>
 <version>2.8.2</version>
</dependency>
<dependency><!-- 桥接:告诉commons logging使用Log4j2 -->
 <groupId>org.apache.logging.log4j</groupId>
 <artifactId>log4j-jcl</artifactId>
 <version>2.8.2</version>
</dependency>
<!--web工程需要包含log4j-web,非web工程不需要-->
<dependency>
 <groupId>org.apache.logging.log4j</groupId>
 <artifactId>log4j-web</artifactId>
 <version>2.9.0</version>
</dependency>
<!--需要使用log4j2AsyncLogger需要包含disruptor-->
<dependency>
 <groupId>com.lmax</groupId>
 <artifactId>disruptor</artifactId>
 <version>3.3.6</version>
</dependency>


刚开始研究

<!-- Log4j 2.x 配置文件。每1800秒自动检查和应用配置文件的更新; -->
<configuration status="error" monitorInterval="1800"  strict="true" schema="Log4J-V2.2.xsd">



4.junit的事务回滚

//忽略某些警告
@SuppressWarnings("deprecation")
//标记,使事务管理器来管理识别
@Transactional
//defaultRollback = true 则测试完毕自动回滚,无法看到数据库是否插入数据,测试环境应该设置为false
// 否则无法确定是否成功提交事务
//defaultRollback = false
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)

这样不会造成测试的脏数据留在数据库里



5. 备案的事情(烦)

如果你备案过的网站不符合标准那么,新审核的就不能通过(好烦)

要在网站底部加上备案号

由于是个人网站,还不能有评论!!!


6. jmter的测试(用二级域名暂时解决备案问题)。

访问http://rcy9527.picp.io/a/profession时。


1


2


3


4

结论:

1. 当一次性访问数量超过5时,响应时间成倍提高。

(战斗力为5


当访问   http://localhost:15400/taskfive/a/profession



当并发量为50


当并发量为100


为500



结论:在服务器上90%的线响应很高,

1. 服务器不知道抽什么风

2. 网路不好





进度: 

         任务开始时间:10.13

         预计完成时间:10.17

         是否有延期风险:有

       我还是想把代码重构好,但是要求降低了,有些带留以后

禅道:http://task.ptteng.com/zentao/project-task-264.htm


PS:明天就可以完成任务一半和重构代码的2/3




返回列表 返回列表
评论

    分享到