Skip to content

性能指标监控管理

张弓 edited this page Feb 19, 2021 · 1 revision

性能指标监控管理

  • 所有的服务访问(推送1个数据,或取得一个数据),内部设计指标为:最长不超过30秒,若达10秒以上时,必须于日志监控上发出警告;外部承诺参考指标:90%的页秒,最长不超过30秒

  • 所有的页面访问(微信页面打开等),内部设计指标为:最长不超过2秒,若达3秒以上时,必须于日志监控上发生警告;外部承诺参考指标:90%的页面,最长不超过3秒

  • 所有的服务,都要考虑在收到性能警告时,能够很容易地由同步调用,改为异步调用。

此处说的异步,与ajax的异步调用所有不同:服务异步,指请求服务时,立即返回结果,如请求最近3年的总销售额,同步时为立即返回结果,异步时则返回:您的请求已收到,正在计算中,稍后通知您计算结果。

同步调用转异步调用编写范例:

//提供同步调用:
public function ServiceTotalAmount(DataSet dataIn, DataSet dataOut, StringBuffer msg){
	String year = dataIn.getHead().getString("year");
	double total = 0;
	//TODO: 从数据库中统计指定年份的金额到total
	dataOut.getHead.setField("total", total);
	return true;
}

//提供异步调用:
public function ServiceTotalAmount(DataSet dataIn, DataSet dataOut, StringBuffer msg){
	SyncService sync = new SyncService(this, "ServiceTotalAmount_old");
        //发送到消息队列,排队执行,执行完成,会推送消息于用户
	String reqNo = sync.post(dataIn, dataOut); 
	msg.append("您的请求已收到,正在计算中,稍后通知您计算结果。");
        //返回队列请求序列号,若前台愿意等待,可根据序列号查询进度
	dataOut.getHead.setField("reqNo", reqNo);
	return true;
}

summer-db

Clone this wiki locally