Skip to content
Open

5.5.0 #256

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
dce8ef0
业务流程-文件操作的时候,如果有问题,快速失败掉
Jun 29, 2022
23d581c
业务流程-文件操作的时候,如果有问题,快速失败掉
Jun 29, 2022
460edd7
业务流程-文件操作的时候,如果有问题,快速失败掉
Jun 29, 2022
2582376
业务流程-文件操作的时候,如果有问题,快速失败掉
Jun 29, 2022
5fb30fc
顺丰2.0压测慢SQL优化
github880 Jul 1, 2022
04cdbd8
因为某些未知原因导致偶尔重启时查不到数据,在插件加载完成后强制清空缓存
iaoyz Jul 4, 2022
fd7dbfb
项目启动时增加影子数据缓存清除逻辑
iaoyz Jul 5, 2022
aac884c
esjob-状态校验
Jul 5, 2022
5ae4931
esjob调整测试下
Jul 5, 2022
3fed797
esjob调整测试下
Jul 5, 2022
63abe71
esjob调整测试下
Jul 5, 2022
c704dc1
esjob-状态校验
Jul 5, 2022
4e485b5
esjob-状态校验
Jul 5, 2022
64a8985
esjob-状态校验
Jul 5, 2022
6516fc3
esjob-状态校验
Jul 5, 2022
de06036
bug fix:app
Jul 5, 2022
3d5aa6e
Merge remote-tracking branch 'origin/5.5.0' into 5.5.0
Jul 5, 2022
b55afd8
esjob-状态校验
Jul 5, 2022
93eec07
Merge remote-tracking branch 'origin/5.5.0' into 5.5.0
Jul 5, 2022
cd8dc04
bug fix:入口匹配
Jul 5, 2022
b6633de
Merge remote-tracking branch 'origin/5.5.0' into 5.5.0
Jul 5, 2022
9c5d3c6
bug fix:app
Jul 5, 2022
9baa8ce
bug fix:app
Jul 5, 2022
72461dd
bug fix:入口匹配
Jul 5, 2022
8bb77de
bug fix:app
Jul 5, 2022
842183a
bug fix:app
Jul 5, 2022
e59088e
bug fix:reset
Jul 5, 2022
4dfd13f
Merge remote-tracking branch 'origin/5.5.0' into 5.5.0
Jul 5, 2022
d582e3c
定时任务处理线程池
Jul 7, 2022
7f1b7ab
定时任务处理线程池
Jul 7, 2022
db7f03d
esjob-状态校验
Jul 7, 2022
77e4a2c
中间件信息加开关
Jul 7, 2022
e7fa4c5
白名单-应用启动的时候不要初始化了
Jul 7, 2022
4446bd9
删除临时文件
Jul 7, 2022
1b3f607
agent拉取影子job的查询除去权限id
iaoyz Jul 8, 2022
6089f80
Merge remote-tracking branch 'origin/5.5.0' into 5.5.0
iaoyz Jul 8, 2022
b6622e3
merge from bugfix/5.5.0
Jul 12, 2022
a11f856
修复异常展示
Jul 12, 2022
faa25ab
缓存失效,流量透传到mysql
Jul 14, 2022
9d18de1
项目启动,应用相关配置不需要同步到zk
Jul 14, 2022
0f80c7a
缓存失效,流量透传到mysql
Jul 14, 2022
eb7e2b4
缓存失效,流量透传到mysql
Jul 15, 2022
902d4ad
缓存失效,流量透传到mysql
Jul 15, 2022
a74f9b9
打包增加时分秒方便版本管理
zhangz-2018 Jul 15, 2022
fe5d0e4
merge
Jul 18, 2022
3600719
修改状态不一致的问题
Jul 21, 2022
f1ecd43
修改应用状态不一致
Jul 21, 2022
9de5aee
修复应用状态
Jul 22, 2022
1e7f31b
fix
Jul 22, 2022
2f010ee
fix
Jul 22, 2022
efa4252
注释
Jul 22, 2022
e379156
fix
Jul 22, 2022
e3246c2
fix
Jul 22, 2022
c30db08
fix
Jul 22, 2022
9b4e9aa
fix
Jul 22, 2022
3652cad
构建缓存的时间大一点
Jul 25, 2022
67170c6
构建缓存的时间大一点
Jul 26, 2022
b6964f1
调整下缓存为获取到,抛出异常,避免agent认为数据失效
Jul 26, 2022
ea23f93
解决应用删除后,关联数据能查出来的问题
iaoyz Aug 1, 2022
cea80b4
Merge remote-tracking branch 'origin/5.5.0' into 5.5.0
iaoyz Aug 2, 2022
e2a5311
插件管理-缓存失效时间控制级别改成分钟级,兼容探针
iaoyz Aug 2, 2022
5a38c78
修改控制台页面的缓存失效显示,从小时改成分钟
iaoyz Aug 2, 2022
eded129
fix
iaoyz Aug 2, 2022
a63377c
清理缓存之前,判断下报告状态
Aug 2, 2022
74ec510
Merge remote-tracking branch 'origin/5.5.0' into 5.5.0
Aug 2, 2022
ddc3820
清理缓存之前,判断下报告状态
Aug 3, 2022
f1a9cc6
调整redis处理时间
Aug 3, 2022
c895de0
清理缓存之前,判断下报告状态
Aug 3, 2022
49606e8
报告状态未更新
Aug 3, 2022
36bfe90
任务监听配置增加默认值
Aug 3, 2022
41db7c6
-1的情况不参与计算
iaoyz Aug 9, 2022
80c4dd1
修复创建场景的时候没有传入sceneId的bug
zhangz-2018 Aug 9, 2022
4ca671e
测试
zhangz-2018 Aug 12, 2022
0955c17
应用状态不一致
Aug 16, 2022
5ffa68f
Merge remote-tracking branch 'origin/5.5.0' into 5.5.0
Aug 16, 2022
0b4d75e
修复缓存key设置错误导致的拉取es和kafka配置相同的问题
zhangz-2018 Sep 8, 2022
0efe2f4
修复缓存key设置错误导致的拉取es和kafka配置相同的问题
zhangz-2018 Sep 9, 2022
37afb58
commons-text版本提升到1.10.0
Dec 7, 2022
9b00b7c
Merge pull request #297 from JiangJibo/5.5.0-commons-text
zhaoyong6315 Dec 7, 2022
3daae80
fix:顺丰环境查询t_interface_type_main(远程调用类型表)过于频繁
Mar 16, 2023
823b534
fix:远程调用restfull风格合并,减少推送给agent的数据量
Mar 20, 2023
f4d4823
fix:去掉之前远程调用合并的功能
Mar 21, 2023
beadad7
fix:修复手工添加入口规则没有APPLICATIONID
May 9, 2023
349a61a
fix:手动新增入口规则时插入应用Id
May 15, 2023
b1c8d31
缓存cloud压测实况,显示大脚本上传
May 16, 2023
2850866
Merge pull request #310 from JiangJibo/5.5.0
zhaoyong6315 May 16, 2023
bddbe74
fix:注释掉这个三个定时任务
Jun 8, 2023
4cbda62
redis配置修改
Jun 8, 2023
f1b7133
Merge pull request #311 from JiangJibo/5.5.0
zhaoyong6315 Jun 8, 2023
d7d2357
redis配置修改
Jun 9, 2023
10043ab
Merge branch 'shulieTech:5.5.0' into 5.5.0
JiangJibo Jun 9, 2023
71548ba
Merge pull request #313 from JiangJibo/5.5.0
zhang19970916 Jun 9, 2023
800c02c
这个版本先注掉机器指标收集和瓶颈接口处理
zhangz-2018 Jun 29, 2023
5e69ed2
Merge remote-tracking branch 'origin/5.5.0' into 5.5.0
zhangz-2018 Jun 29, 2023
b3a33f0
新增校验:启动场景前校验脚本中采样器数量
Jul 11, 2023
1bd8021
Merge pull request #327 from jojoya/5.5.0
zhangz-2018 Jul 11, 2023
e03a3ae
优化校验:调整提示语
Jul 11, 2023
c9623fc
Merge pull request #328 from jojoya/5.5.0
zhangz-2018 Jul 11, 2023
9834386
commons-text.jar包升级到1.10.0
Jul 13, 2023
b5e9292
Merge pull request #329 from jojoya/5.5.0
zhangz-2018 Jul 13, 2023
a46f9c1
去掉漏数检测
zhangz-2018 Aug 16, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion takin-web-amdb-accessor/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.8</version>
<version>1.10.0</version>
<scope>compile</scope>
</dependency>
<dependency>
Expand All @@ -73,6 +73,16 @@
<dependency>
<groupId>io.shulie.takin</groupId>
<artifactId>takin-common-utils</artifactId>
<exclusions>
<exclusion>
<artifactId>commons-text</artifactId>
<groupId>org.apache.commons</groupId>
</exclusion>
<exclusion>
<artifactId>takin-common-exception-starter</artifactId>
<groupId>io.shulie.takin</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
Expand All @@ -93,6 +103,12 @@
<dependency>
<groupId>io.shulie.takin</groupId>
<artifactId>takin-web-common</artifactId>
<exclusions>
<exclusion>
<artifactId>commons-text</artifactId>
<groupId>org.apache.commons</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.shulie.surge.data</groupId>
Expand Down
20 changes: 18 additions & 2 deletions takin-web-app/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,7 @@
</profile>
</profiles>
<build>
<finalName>${project.version}</finalName>
<!-- <finalName>${project.version}</finalName>-->
<resources>
<resource>
<directory>src/main/resources</directory>
Expand Down Expand Up @@ -422,7 +422,23 @@
</execution>
</executions>
</plugin>

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.4</version>
<configuration>
<timestampFormat>yyMMddHHmmss</timestampFormat>
</configuration>
<executions>
<execution>
<goals>
<goal>create-timestamp</goal>
</goals>
</execution>
</executions>
<inherited>false</inherited>
</plugin>
</plugins>
<finalName>${project.version}-${timestamp}</finalName>
</build>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@

import com.dangdang.ddframe.job.event.JobEventConfiguration;

import com.dangdang.ddframe.job.lite.lifecycle.api.JobOperateAPI;
import com.dangdang.ddframe.job.lite.lifecycle.api.JobStatisticsAPI;
import com.dangdang.ddframe.job.lite.lifecycle.internal.operate.JobOperateAPIImpl;
import com.dangdang.ddframe.job.lite.lifecycle.internal.statistics.JobStatisticsAPIImpl;
import com.dangdang.ddframe.job.reg.base.CoordinatorRegistryCenter;
import com.dangdang.ddframe.job.reg.zookeeper.ZookeeperConfiguration;
import com.dangdang.ddframe.job.reg.zookeeper.ZookeeperRegistryCenter;
import org.springframework.context.annotation.Bean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
Expand Down Expand Up @@ -45,4 +52,24 @@ public SpringJobSchedulerFactory springJobSchedulerFactory(ElasticJobProperties
public JobConfParser jobConfParser(SpringJobSchedulerFactory springJobSchedulerFactory) {
return new JobConfParser(springJobSchedulerFactory);
}

// 初始化elasticJob页面操作类
@Bean
public CoordinatorRegistryCenter zkCenter() {
ZookeeperConfiguration configuration = new
ZookeeperConfiguration(zkAddress, "takin-web-job-" + env);
CoordinatorRegistryCenter center = new ZookeeperRegistryCenter(configuration);
center.init();
return center;
}

@Bean
public JobStatisticsAPI jobStatisticsAPI(CoordinatorRegistryCenter zkCenter) {
return new JobStatisticsAPIImpl(zkCenter);
}

@Bean
public JobOperateAPI jobOperateAPI(CoordinatorRegistryCenter zkCenter) {
return new JobOperateAPIImpl(zkCenter);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
package io.shulie.takin.web.app.conf;

import com.dangdang.ddframe.job.lite.lifecycle.api.JobOperateAPI;
import com.dangdang.ddframe.job.lite.lifecycle.api.JobStatisticsAPI;
import com.dangdang.ddframe.job.lite.lifecycle.domain.JobBriefInfo;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import io.shulie.takin.web.biz.service.DistributedLock;
import io.shulie.takin.web.common.util.JVMUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.event.ApplicationStartedEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.*;

/**
* elasticjob 任务监听
*
* @author zhouyuan
* @Date 7月5号
*/
@Slf4j
@Component
public class EsJobTaskListener implements ApplicationListener<ApplicationStartedEvent> {
// 需要监听的任务信息,按逗号分割
@Value("${takin.listener.jobtask:}")
private String jobTask;

@Value("${takin.listener.jobtask.initialDelay:600}")
private int initialDelay;

@Value("${takin.listener.jobtask.period:30}")
private int period;

// 是否打印jstack,如果状态不对的时候
@Value("${takin.web.jstack.enable:false}")
private boolean jstackEnable;

private static volatile long lastPrintTime = 0;

private static final long TWO_MINUTES_MILLS = 2 * 60 * 1000;

private static Semaphore guard = new Semaphore(1);

private static final String USER_HOME = System.getProperty("user.home");

private static final String DEFAULT_DATETIME_FORMAT = "yyyy-MM-dd_HH:mm:ss";

@Resource
private JobOperateAPI jobOperateAPI;

@Resource
private JobStatisticsAPI jobStatisticsAPI;

@Resource
private DistributedLock distributedLock;

/**
* @param event 事件源
*/
@Override
public void onApplicationEvent(ApplicationStartedEvent event) {
try {
log.info("EsJob 任务监听开启 ");
if (StringUtils.isNotBlank(jobTask)) {
ScheduledExecutorService service = Executors.newScheduledThreadPool(1, new ThreadFactoryBuilder().setNameFormat("JobTaskListener-%d").build());
String esJobLock = "JobTaskListener_onApplicationEvent";
// 检查job任务状态
Runnable threadTask = new Runnable() {
@Override
public void run() {
try {
if (!distributedLock.tryLock(esJobLock, 1L, 1L, TimeUnit.MINUTES)) {
return;
}
// 获取任务状态
String[] jobTaskArr = jobTask.split(",");
for (int i = 0; i < jobTaskArr.length; i++) {
// 获取任务状态
JobBriefInfo jobBriefInfo = jobStatisticsAPI.getJobBriefInfo(jobTaskArr[i]);
if (jobBriefInfo == null) {
log.error("获取任务信息为空,{}", jobTaskArr[i]);
continue;
}
// 任务状态非正常
if (jobBriefInfo.getStatus() == JobBriefInfo.JobStatus.SHARDING_FLAG) {
// 打印下jstack,看下当前线程在干啥
if (jstackEnable) {
dumpJStack();
}
// 点下触发,让他重试下
log.info("当前任务状态为分片待调整,触发当前任务执行,{}", jobTaskArr[i]);
jobOperateAPI.trigger(com.google.common.base.Optional.of(jobTaskArr[i]), null);
}
}
} catch (Throwable e) {
log.error("任务处理失败,{}" + ExceptionUtils.getStackTrace(e));
} finally {
distributedLock.unLock(esJobLock);
}
}
};
// 提交任务,默认10分钟以后,每隔30秒执行一次
service.scheduleAtFixedRate(threadTask, initialDelay, period, TimeUnit.SECONDS);
}
} catch (Throwable e) {
log.error("JobTaskListener is fail,{}" + ExceptionUtils.getStackTrace(e));
}
}

private void dumpJStack() {
long now = System.currentTimeMillis();
//dump every 2 minutes
if (now - lastPrintTime < TWO_MINUTES_MILLS) {
return;
}
if (!guard.tryAcquire()) {
return;
}
String dumpPath = USER_HOME;
SimpleDateFormat sdf = new SimpleDateFormat(DEFAULT_DATETIME_FORMAT);
String dateStr = sdf.format(new Date());
try (FileOutputStream jStackStream = new FileOutputStream(
new File(dumpPath, "Takin_web_JStack.log" + "." + dateStr))) {
JVMUtil.jstack(jStackStream);
} catch (Throwable t) {
log.error("dump jStack error", t);
} finally {
guard.release();
}
lastPrintTime = System.currentTimeMillis();
}
}
Loading