...
|
...
|
@@ -40,7 +40,7 @@ core模块线程池异步消息使用线程池添加maxPoolSize参数,原默 |
|
|
> 添加购物车查询后的推送开关:用户等级缓存,联盟推送。
|
|
|
>
|
|
|
> 解决问题:减少不重要的推送消息,通过zk动态配置开关,在运行状态切换消息推送功能,如下段发送消息入口代码首先判断开关,如果开关未开启则不进行消息推送。
|
|
|
```java
|
|
|
```
|
|
|
private void publishUnionPushEvent(String userAgent, OrderCreationContext orderCreationContext) {
|
|
|
if(!configReader.getBoolean("order.submit.push.union.enable", true)){ //开关关闭,不发
|
|
|
return;
|
...
|
...
|
@@ -116,7 +116,7 @@ injectAttributeValue方法占用大量CPU,追踪该方法在ChargeGoods构造 |
|
|
>
|
|
|
> 效果:减少string2Value方法的cpu时间。修改代码如下,带注释代码为优先判断部分。
|
|
|
>
|
|
|
```java
|
|
|
```
|
|
|
public static <T> T string2Value(String value, Class<T> clazz) {
|
|
|
if(StringUtils.isEmpty(value)){
|
|
|
return null;
|
...
|
...
|
@@ -183,28 +183,13 @@ A. 避免使用substring截断字符串。 |
|
|
|
|
|
> **当时主要问题是这个操作在log.debug中,目的为了截断输出,debug虽然不打印日志,但是里面的表达式还是会执行,所以在jvusalvm中发下该方法占cpu时间较多。**
|
|
|
|
|
|
summary + 60787 in 00:00:30 = 2026.2/s Avg: 196 Min: 11 Max: 643 Err:
|
|
|
226 (0.37%) Active: 400 Started: 400 Finished: 0
|
|
|
|
|
|
summary + 39545 in 00:00:30 = 1318.2/s Avg: 302 Min: 22 Max: 702 Err:
|
|
|
135 (0.34%) Active: 400 Started: 400 Finished: 0
|
|
|
|
|
|
购物车编辑压测mark
|
|
|
------------------
|
|
|
|
|
|
Remove操作:
|
|
|
|
|
|
1. select
|
|
|
|
|
|
2. update or delete
|
|
|
|
|
|
![](media/image8.png){width="6.614583333333333in"
|
|
|
height="0.5291666666666667in"}
|
|
|
|
|
|
> Select操作
|
|
|
##购物车编辑压测mark
|
|
|
------------------
|
|
|
|
|
|
![](media/image9.png){width="6.0090146544181975in"
|
|
|
height="0.5052088801399826in"}
|
|
|
### 查询操作减少优化
|
|
|
|
|
|
### order AWS写库优化
|
|
|
|
...
|
...
|
@@ -222,7 +207,14 @@ http://blog.itpub.net/22664653/viewspace-1063134/ |
|
|
|
|
|
问题发现:
|
|
|
|
|
|
订单查询
|
|
|
|
|
|
### core数据库连接池大小优化
|
|
|
问题发现
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##订单查询
|
|
|
--------
|
|
|
|
|
|
1. 订单列表
|
...
|
...
|
|