发表于: 2019-12-01 23:52:40
1 1004
今天完成的事:
1、压测单独返回json数据。
有缓存有负载。
首页:
从缓存中取出json字符串,转为list集合,使用RepsonseBody注解转为json对象。
json字符串转为jsonArray,通过RepsonseBody注解返回。
职业列表:
从缓存中取出json字符串,转为list集合,传入Map集合中,使用RepsonseBody注解转为json对象。
json字符串转为jsonArray,传入Map集合中,通过RepsonseBody注解返回。
只返回json数据比测试jsp页面要快很多,这是在有负载均衡的条件下,因为数据量较小,使用负载均衡反而更消耗时间,大致跟测试jsp页面不使用负载均衡时的响应时间差不多,甚至更快一些。但是TPS值则是超过一截。
总结:
返回json数据都需要将json字符串进行转换,要么转为list集合,要么转为jsonArray,然后再使用注解返回,效率差不多。
2、查看容联短信验证。
首先注册,可以免费进行测试,有8元的金额,试了下一个短信6分。
查看了下短信验证接口,下载java版本demo示例。
下图是解压后的目录结构,但是不是最新的,最新的2.7没有lib文件夹,也就是没有jar包,需要自己使用maven命令打包。
这里我又下载了2.6版本,直接使用其jar包。
还要注意下在管理页面有个鉴权IP设置,默认是开启的,也就是设置后,只允许接收鉴权IP地址发来的请求,有效提高安全性,拿本本记一下。别到时候请求不到也不知道错在哪。
如下进行jar包添加即可,不需要在pom文件中填写什么,而后勾选jar包,点击apply,OK。
查找jar包使用方法时,被误导了,那是需要将jar包引入maven管理,所以在pom文件中添加依赖,需要使用maven命令进行本地install,但是方法中没有说maven命令,以为加入jar包添加依赖就好了。。
看到下图即添加成功。在类中直接导入类使用即可。
这里测试下demo示例中的代码,发送短信成功。
import java.util.HashMap;
import java.util.Set;
import com.cloopen.rest.sdk.CCPRestSmsSDK;
public class SDKTestSendTemplateSMS {
public static void main(String[] args) {
HashMap<String, Object> result = null;
//初始化SDK
CCPRestSmsSDK restAPI = new CCPRestSmsSDK();
// 初始化服务器地址和端口,生产环境配置成app.cloopen.com,端口是8883.
restAPI.init("app.cloopen.com", "8883");
// 初始化主账号名称和主账号令牌,登陆云通讯网站后,可在控制首页中看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKEN。
restAPI.setAccount("8a216da86eb206c4016ec07c7a390617", "5c3d4e0c6b294c95981947821cb6f023");
// 请使用管理控制台中已创建应用的APPID。
restAPI.setAppId("8a216da86eb206c4016ec07c7aa0061e");
// 参数分别是:手机号(多个手机号间隔“,”),模板id,模板内容1(验证码)、2(过期时间)
// 返回是data(templateSMS创建时间,smsMessageSid)、statusCode状态码
// 如果发送不成功,还会返回statusMsg状态码对应的错误信息
result = restAPI.sendTemplateSMS("13068791270","1" ,new String[]{"66666","222"});
System.out.println("SDKTestGetSubAccounts result=" + result);
// statusCode状态码为000000,即为发送成功
if("000000".equals(result.get("statusCode"))){
// 正常返回输出data包体信息(map)
HashMap<String,Object> data = (HashMap<String, Object>) result.get("data");
// 获取data中的key
Set<String> keySet = data.keySet();
// 遍历key,通过key得到对应的值,输出
for(String key:keySet){
Object object = data.get(key);
System.out.println(key +" = "+object);
}
}else{
//异常返回输出错误码和错误信息
System.out.println("错误码=" + result.get("statusCode") +" 错误信息= "+result.get("statusMsg"));
}
}
}
下图是错误信息,相应的错误都会准确的输出,真方便。
发送成功,状态码是000000。
3、简单查看性能瓶颈调优。
性能就是尽可能有限的资源里干更多的事情。增加TPS,降低响应时间,让两者达到平衡,满足业务要求。发现性能瓶颈就是找到影响这两件事的地方。
网上一般是两种说法,一个是说要把代码放在第一位,规范代码,有良好的编码习惯是个很重要的职业素养。对于一些sql语句的优化,静态变量、局部变量的使用,对象的创建等等,有很多讲究,这也是之前一直忽视的。。
还有一种说法是调整硬件或系统配置,查看CPU利用率,内存使用率操作系统IO,网络IO,网络链接数等等,了解是带宽不够,内存不够还是其他什么原因。
也可以根据28原则,20%的代码消耗了80%的性能,只需要优化这20%的代码即可,就能优化80%的性能。这样也有道理。。
目前我认为硬件配置需要看一些外部条件,代码的规范是看自己,所以还是认为规范自己的编码习惯是比较重要的,将代码尽可能的优化后,再进行系统配置的调整比较好。
明天计划的事:
有事请假
遇到的问题:
无
收获:
1、压测单独返回json数据。
2、查看容联短信验证。
3、简单查看性能瓶颈调优。
评论