tomcat开启远程debug
前言
测试环境的问题在本地复现不出来,最直接的办法就是远程 debug:本地 IDEA 打断点,连到测试环境的 tomcat 上单步跟。配置很简单,给 catalina 加一段 JDWP 参数就行,但有个 shutdown.sh 失效的坑要提前知道。
1、配置方法
linux 下在 catalina.sh 开头(或者按规范放 bin/setenv.sh)加:
|
|
windows 下修改 catalina.bat:
|
|
参数含义:
……一位Java开发者,喜欢研究技术,同时也在学习Golang和Python中,对服务器、Linux使用比较熟悉。欢迎添加技术交流QQ群:655158296
测试环境的问题在本地复现不出来,最直接的办法就是远程 debug:本地 IDEA 打断点,连到测试环境的 tomcat 上单步跟。配置很简单,给 catalina 加一段 JDWP 参数就行,但有个 shutdown.sh 失效的坑要提前知道。
linux 下在 catalina.sh 开头(或者按规范放 bin/setenv.sh)加:
|
|
windows 下修改 catalina.bat:
|
|
参数含义:
……表单重复提交是老问题:用户手快点了两下提交、网络卡顿刷新重发,数据就插了两条。最常见的解法是提交完成后 redirect 跳转,但它解决不了 ajax 提交和移动端提交的场景(没有页面可跳)。通行的做法是用 token:django 等框架内置了这套机制,SpringMVC 需要自己搭,这篇把完整实现整理出来(思路参考了网上的经典方案,见文末参考)。
……BackgroundRemover是一个命令行工具,用于从视频 和图像中删除背景
Requirements
python <= 3.6
python3.6-dev #or what ever version of python you using
torch and torchvision stable version https://pytorch.org
ffmpeg 4.4+
|
|
|
|
如果不提前下载模型的话,在首次执行的时候会自动下载,但是需要从 google 网盘下载,因此需要有翻墙能力。
如果手工下载可以参考下面地址:
1、https://github.com/xuebinqin/U-2-Net#usage-for-salient-object-detection,参考章节"Download the u2net_portrait.pth"
2、https://pan.baidu.com/s/1FbUIBJsEua7G1vYo06lSmg 提取码: o0uu
3、https://drive.google.com/u/0/uc?id=1rbSTGKAE-MTxBYHd-51l2hMOQPT_7EPy&export=download
springboot利用devtools实现热部署
|
|
设置WEB-INF下的jsp修改不需要重启。
|
|
|
|
1、File-Settings-Compiler-Build Project automatically
2、ctrl + shift + alt + /,选择Registry,勾上 Compiler autoMake allow when app running
nginx的反向代理和当做前端容器使用比较广泛,有一些参数详情搜集整理下
Nginx运行工作进程个数一般设置CPU的核心或者核心数x2。
如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpuinfo文件
|
|
|
|
比如4核配置:
……linux的一些小细节记录
tmp下的文件或目录长时间没有更新或者改动的话,systemd-tmpfiles 会按配置定期清理,配置参考如下:
|
|
|
|
|
|
注:netstat 属于已停止维护的 net-tools 套件,新发行版推荐用 ss 等价替代:
……ss -ant | awk 'NR>1 {++S[$1]} END {for(a in S) print (a,S[a])}'。
找到每日全量备份的数据,把订单表还原到测试库,然后单独把订单表重新备份,针对误删的表进行全量恢复 采用的工具是mydumper,非mysql官方的mydump 心想:好在有每日凌晨5点的全量备份,虽然在自己手里,从开发了每日全量备份脚本并配置定时任务每天执行,从来没派上用场,也希望不会派上用场,但是良好的备份意识还是挽救了90%的数据。 半小时左右,90%的数据恢复,然后把问题上报。
……好好运行的系统,突然故障,无意间根据错误信息查找,竟然是jdk的bug,描述下曲折的定位过程。
有个老系统有使用到soap接口,采用CXF结合接口文件wsdl自动生成的接口开发的,突然在3月2日(后续日志定位才发现真正故障的时间)无法正常工作,但是实际发现时间已经到了3月6日了,直接查看日志文件,报错“组装saop报文头异常:Entity References are not allowed in SOAP documents”
……攒了几个 linux 小技巧,单独发太碎,合在一起记录:文件句柄占用排查(句柄打满的锅十有八九是它)、TIME_WAIT 过多的内核参数、还有删除乱码文件名文件。
服务报 Too many open files 的时候,先找到是谁把句柄吃光的:
|
|
调大句柄上限,root 登录:
……做后台系统或数据报表时经常碰到广告投放侧的术语:CPA、CPS、CPM、CPT、CPC。五个缩写长得像,区别全在「按什么付费」。这篇一次讲清——按付费锚点从「展示」到「成交」排列,正好是一条转化漏斗。
CPM(Cost Per Mille,每千人成本):按展示付费,只要展示了广告主的广告内容,每满一千次曝光就计一次费。品牌广告主用得最多——他们买的是「让更多人看到」。
……