发表于: 2017-08-30 19:34:47

1 1159


今天做的事:

今天上午在业务逻辑中把memcached缓存加进去,并且可以正常存取了。事实证明,往逻辑块里加东西是真的费劲,何况还是我自己写的,何况逻辑还不复杂,怪不得要解耦,真的难受!


看一下逻辑层的改动吧

新增插入职业页面

@RequestMapping(value = "/a/addProf",method = RequestMethod.GET)
public String getAdd(Map<String,Object> map){
map.put("profession",new Profession());
   return "input";
}

@RequestMapping(value = "/a/addProf",method = RequestMethod.POST)
public String input(Profession profession){

System.out.println(profession);
   pS.insert(profession);

   return "redirect:/a/u/Profession";
}

相应的jsp

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page language="java"  pageEncoding="UTF-8" contentType="text/html; charset=utf-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
   <title>新增职业</title>
</head>
<body>

<h2>新增职业信息</h2>
<hr>

<form:form action="${pageContext.request.contextPath}/a/addProf" method="post" modelAttribute="profession">


pid:<form:input path="pid"/><br/>
   picture:<form:input path="picture"/><br/>
   profession:<form:input path="profession"/><br/>
   introduce:<form:input path="introduce"/><br/>
   level:<form:input path="level"/><br/>
   difficult:<form:input path="difficult"/><br/>
   growup:<form:input path="growup"/><br/>
   scarcity:<form:input path="scarcity"/><br/>
   salary1:<form:input path="salary1"/><br/>
   salary2:<form:input path="salary2"/><br/>
   salary3:<form:input path="salary3"/><br/>
   tips:<form:input path="tips"/><br/>
   ppid:<form:input path="ppid"/><br/>
   <input type="submit" value="提交">


</form:form>
<hr>

</body>
</html>

然后在相应的页面调动中会使用到Service层,更改后的Service层代码

public List<BigProfession> getFrot_end(){

List<BigProfession> Frot_end;
   if(MemcachedUtil.get("Frot_end") != null){
System.out.println("从缓存取出前端");
       Frot_end =(List<BigProfession>) MemcachedUtil.get("Frot_end");
   }else{
Frot_end =pM.getFrot_end();
       MemcachedUtil.put("Frot_end",Frot_end,60);
   }

return Frot_end;
}

public List<BigProfession> getBack_end(){

List<BigProfession> Back_end;
   if(MemcachedUtil.get("Back_end") != null){
System.out.println("从缓存取出后端");
       Back_end = (List<BigProfession>) MemcachedUtil.get("Back_end");
   }else{
Back_end =pM.getBack_end();
       MemcachedUtil.put("Back_end",Back_end,60);
   }

return Back_end;
}
public boolean insert(Profession profession){
int i = pM.insert(profession);
   if (i > 0) {
System.out.println("插入成功");
       if(profession.getPid() == 1){
List<BigProfession> Frot_ends= pM.getFrot_end();
           System.out.println("取出的前端列表" + Frot_ends);
           MemcachedUtil.replace("Frot_end",Frot_ends,60);
           System.out.println("缓存中的前端列表" + MemcachedUtil.get("Frot_end"));
       }
if(profession.getPid() == 2){
List<BigProfession> Back_ends= pM.getBack_end();
           System.out.println("取出的后端列表" + Back_ends);
           MemcachedUtil.replace("Back_end",Back_ends,60);
           System.out.println("缓存中的后端列表" + MemcachedUtil.get("Back_end"));
       }

flag = true;
   } else {
System.out.println("插入失败");
   }

return flag;
}

这个往逻辑块里塞东西是真的烦,这块调试了好久。

最后在运行时,第一次读取是从数据库中,之后都是从缓存中读数据


接下来是JMeter测试


看到90%Line在1.8秒左右。这是整个项目的网页进行的请求,每个网页请求200次。

最后数据也插入进来了(忘插了一个字段)

将缓存去了

90%Line变短了,挺奇怪的。不清楚是什么原因,数据也插入成功了

所以。。。挺奇怪的。


这里有个bug,是部署服务器的时候有的,一个重定向的问题

response.sendRedirect("/a/login");

这里的跳转会跳转到服务器IP/a/login,缺少一段项目名,没办法,就手动添加了(也不知道有什么别的解决办法)



接下来就是配置Nginx的upstream的负载均衡了。


明天计划:配置负载均衡,然后替换Redis。


问题:暂无(服务器出现页面排版问题了,不知道咋回事,就不解决了,应该是前端页面的问题,本地是什么问题都没有)


收获:memcached配置全部完成,服务器也能跑了。


返回列表 返回列表
评论

    分享到