1700474503
1700474504
该系统一共有8台应用服务器,基本上CPU繁忙程度都在60%以上,HTTP的最大并发是2000,平均分配到每台应用服务器上没有太大的压力,于是怀疑是代码问题,然后详细了解了一下业务和数据流逻辑,基本的业务操作过程清楚了,先登录(没有账号的,则要先注册),登录后,需要填写以下信息:
1700474505
1700474506
❑考试科目,选择框。
1700474507
1700474508
❑考试地点,选择框,根据科目不同,列表不同。
1700474509
1700474510
❑准考证邮寄地址,输入框。
1700474511
1700474512
还有其他一堆信息,我们以这三者作为代表来讲解。信息填写完毕后,点击确认,报名就结束了。简单程序的业务逻辑也确实是这样,为什么出现Crash情况呢?那肯定是和压力有关系!
1700474513
1700474514
我们先把这个过程的静态类图画出来,如图28-1所示。
1700474515
1700474516
1700474517
1700474518
1700474519
图28-1 报考系统类图
1700474520
1700474521
很简单的工厂方法模式,表现层通过工厂方法模式创建对象,然后传递给业务层和持久层,最终保存到数据库中,为什么要使用工厂方法模式而不用直接new一个对象呢?因为是在框架下编程,必须有一个对象工厂(ObjectFactory,Spring也有对象工厂)。我们先来看报考信息,如代码清单28-1所示。
1700474522
1700474523
代码清单28-1 报考信息
1700474524
1700474525
public class SignInfo{
1700474526
1700474527
//报名人员的ID
1700474528
1700474529
private String id;
1700474530
1700474531
//考试地点
1700474532
1700474533
private String location;
1700474534
1700474535
//考试科目
1700474536
1700474537
private String subject;
1700474538
1700474539
//邮寄地址
1700474540
1700474541
private String postAddress;
1700474542
1700474543
public String getId(){
1700474544
1700474545
return id;
1700474546
1700474547
}
1700474548
1700474549
public void setId(String id){
1700474550
1700474551
this.id=id;
1700474552
[
上一页 ]
[ :1.700474503e+09 ]
[
下一页 ]