发表于: 2017-10-19 19:29:18

1 737


今天完成的事情:

1.任务六深度思考

①为什么要使用memcache?memcashe有什么作用?

为什么要使用memcached:

一、memcached稳定,长时间不重启也不会出错

二、配置简单,在打开时设定端口内存并发数即可

三、可以实现分布式缓存

作用:

一、大量的减少了对数据库的访问,提高了网站的稳定性

二、将频繁访问的网页放到缓存中,每次访问不必重复生成,提高网站的性能

三、缓存响应比数据库要快,提升了网站的响应速度和用户体验


②什么是负载均衡,为什么要做负载均衡?

一、负载均衡是将大量访问分摊到多台设备分别处理,减少用户等待时间;或将单个需要大量计算的任务分摊到多台设备上分别计算然后再整合返回结果

二、硬件方面:在面临大量的访问时,单个设备的能力是有限的,而设备的升级是有边际效应的,并不是投入多少就能产生多少性能,再优秀的设备也无法满足日益提高的业务量需求

经济方面:在升级设备后,使用旧设备进行负载均衡,是一个廉价高效的选择


③nginx如何实现负载均衡?

使用upstream模块集成后端服务器,而nginx实现反向代理,作为其入口,使用proxy_pass/fastcgi_pass的方式进行转发给后端服务器,转发的规则由几种算法来决定


2.选择小课堂内容:正则表达式,今天大概的浏览了一下

早就想学大名鼎鼎的正则表达式了,奈何一直拖着没学,借小课堂的机会,学习一下

学习的内容比较少,难以总结,就先不放总结了


3.抓取第三方API发送返回的状态码

短信

if (result.get("statusCode").equals("000000")) {
   log.info("SMS be sent successfully");
} else {
   log.error("SMS be sent unsuccessful,The statusCode is " + result.get("statusCode"));
}

效果:

成功:

失败:


邮件:

public static void sendEmail(String receiver, String code) {

   MAILSend submail = createConfig();
   submail.addTo(receiver,"receiver");
   submail.setSender("summerwaves@1245.cn","sender");
   submail.setSubject("验证码");
   submail.setText("验证码" + code);
   ByteArrayOutputStream baoStream = new ByteArrayOutputStream(1024);
   // cache stream
   PrintStream cacheStream = new PrintStream(baoStream);
   // old stream
   PrintStream oldStream = System.out;
   System.setOut(cacheStream);
   submail.send();
   String message = baoStream.toString();
   // Restore old stream
   System.setOut(oldStream);
   String[] test = message.split("\"");
   if (test[3].equals("success")) {
       log.info("Email be sent successfully");
   } else {
       log.error("SMS be sent unsuccessful");
   }

赛邮云SDK不暴露抓取状态码的方法,在使用send的同时将所有的信息全输出在控制台,在赛邮云中全局搜索“success”得到一个jsonObject.contain(“success”)的结果,而搜索“error”和相应的状态码都没有则没有结果,我得出一个结论:若是邮件发送正确,则在本地返回success,若发送失败,则直接从赛邮云接收状态码。

这样的话只能像上面一样抓取控制台输出的内容了,用split方法抓取success或error,而状态码正好可以使用正则表达式抓取,但今天没时间写了,明天写出来,结果就不放了



明天计划的事情:

学习正则表达式,制作PPT



遇到的问题:

赛邮云的SDK的状态返回集成在send方法上,没错,无法用get(“statuscode”)这种方式,也无法使用trycatch,它的一切结果都只会输出到控制台

解决方法:获取控制台内容,使用split方法或正则表达式方法获取其中的状态码,若状态码不为success,则获取错误码



收获:

初步了解正则表达式,并应用在项目中



进度:

任务7开始时间:2017.10.18

预计demo时间:2017.10.26

延期风险:有

理由:任务难度初步估算,途中有小课堂

禅道

http://task.ptteng.com/zentao/project-task-350.html





返回列表 返回列表
评论

    分享到