接口的实例化方式有点儿奇怪,以IBaseServiceSPI为例:
问题:为什么不直接用new对象的方式实例化接口的实现类呢
getInstance其实底层还是new了一个实现类,为什么要多此一举呢
回答:为了方便后期去转spring,同时这个确实是一个冗余
为什么日志的单子需要修改为yaml的接口
自动化脚本基于云龙上统一管理的接口,只有yaml的接口才会在云龙上管理
项目中实现排序的语句
好像是归并排序
了解微服务远程调试的原理
Java远程调试的原理是两个VM之间通过debug协议进行通信,然后以达到远程调试的目的,两者之间可以通过socket进行通信
各类配置文件的作用:
yaml定义接口,方便统一管理
proto dmq相关
yang给设备下报文
xml配置依赖
properties键值对,配置一些账号密码参数之类的
改变文件权限的命令:chown ossadm:ossgroup ./*
解决单子的时候查看日志的指令:tail -f
DTS2020062902074
创建WAC组,监控-WAC组不显示站点信息
问题原因:底层dto少了一个siteName参数
dto层少sitename字段,以及需要去调用其他能够获得数据库值的接口来获得sitename的实际值,这个接口可以通过CampusBase来获得
DBProxy是负责连接数据库的微服务
问题解决:
AcStateDto类 ------ pfmmgr-ui
增加一行语句private String siteName;
DTS2020051411957
设备时区手动修改可以,但是自动化脚本修改不行
因为时区的接口是自己生成的Java文件,自动化脚本基于统一管理接口的云龙,而只有yaml文件可以被云龙统一管理,因此需要把接口修改为yaml接口
DTS2020061809406
channelratio
先定位一下具体的语句吧,使用信道利用率的升序和降序试一遍,定位具体语句
首先使用正常的参数来比较一下升序和降序的区别,然后再将信道利用率的升序和降序试一遍比较区别
前端字段的问题,排序功能中是根据字段反射获取类的,这里肯定获取不到
用到了反射,根据字段获取类
queryRadioList
RadioTotalInfos radioTotalInfos = ServiceGetUtil.getPerformanceInfoQueryService().queryRadio(condition);
queryRadio
// 排序
RadioInfoUtil.sortRadioInfo(radioInfos, radioInfoQueryCondition);
sortRadioInfo
List<SingleComparator
getComparatorliST
for (String string : sortList) {
SingleComparator
comparatorList.add(single);
}
SingleComparator
public int compare(T o1, T o2) {
Class<?> clazz = o1.getClass();
// 获取成员变量
Field field = clazz.getDeclaredField(sortField);
Class
getDeclaredField()
Field field = searchFields(privateGetDeclaredFields(false), name);
searchFields
if (fields[i].getName() == internedName)
最后的核心就是通过RadioInfo类中的相应字段与前端请求的字段进行比较
DTS2020072307517
TLS1.1被视为不安全协议,排查监控的相关功能,看是否有使用这个协议的功能,并判断是否需要改
首先在微服务中全局搜索,找到配置文件中含有tls1.1的语句,然后确定对应的功能,以及是否一定需要当前协议之类的
DTS2020072408842
修改性能上报数据开关,操作日志中含有转义符