- 博客(73)
- 资源 (9)
- 问答 (1)
- 收藏
- 关注
原创 生产事故:因随意使用 Stream.parallel() 引发P1事故(PS:还很难排查)
那为什么并行流结合SQL查询就会有这个问题呢?这就要了解Stream并行流的设计实现了,简单来说背后是Fork/Join线程池实现并行。详细可参考java8 stream运行原理之并行流原理详解_stream的并行流-CSDN博客。
2025-03-18 18:30:59
788
原创 Netty Websocket SpringBoot Starter
添加依赖</</</</</</</</</基础配置自定义连接处理类实现存储扩展 com.github.kuangcp.websocket.store.CacheDao实现认证扩展 com.github.kuangcp.websocket.store.UserDao。
2024-07-13 01:20:05
380
原创 解决 clickhouse jdbc 偶现 failed to respond 问题
解决 ClickHouseUnknownException: ClickHouse exception, code: 1002, failed to respond
2024-06-04 22:53:28
2010
原创 生产事故:线程管理不善诱发P0故障
其实前面铺垫了1.3.6版本的选择,只能说生不逢时了,因为那会这个项目还是处于孵化状态,后几年才正式发布。现在最新的版本大部分基础技术模块都重写或优化了,包括线程和线程池管理,用Micrometer埋点,加入了更细致的技术指标的监控和告警。但是从这个平台运行到现在已经有大量的调度在跑,要迁移的话就不是一个P0能扛得住了😇,这下有点船大难调头的意味了,只能在现有的架构上打补丁或者说打地鼠 DDDD。
2024-04-13 17:43:35
744
原创 一次有趣的网页敏感信息保护 和 解析数据 思考
使用字体保护网页敏感信息在一次找(爬)数据的过程中,想批量处理一些业务数据,发现了这个巧妙的敏感信息隐藏思路。如下图所示,手机号直接明文暴露出来了,但是当你想复制出来时发现复制了一堆的方块,都是特殊字符 。F12定位元素也是能看到都是小方块,但是又没有看到有请求去后端拉取数据,这就有点意思了。如果恰好有用专业的IDE或者复制到Terminal,就会发现是一串不常见的unicode串编码。那么怎么获取这份明文数据呢。隐藏实现思路:对应业务的网页直接做静态化,不通过后端
2022-05-17 22:55:18
450
1
原创 使用Mybatis Stream 模式 优化大数据量查询和导出
背景特定查询条件下测试数据量 70w (查询条件优化并命中了组合索引),group by 聚合后 3w 条数据,并进行导出为Excel1. 查询数据库select * from xxx group by user where create_date BETWEEN ‘’ AND ‘’1.1 分页查询假如分页大小为 1000, 需要执行 30 次SQL才能得到所有数据。此时MySQL扫描的行数是 70w * 30 = 2100w。由于 group by 使用了中间表,当分页执行到尾声,性能下降特
2021-07-13 01:35:21
4013
原创 Manjaro 安装 企业微信 3.1.1
Deepin Wine Weixin Work下载deb包空目录下新建 PKGBUILD 文件pkgname=com.qq.weixin.work.deepinpkgver=3.1.1.3001deepin0pkgrel=1epoch=pkgdesc="Deepin Wine Weixin Work"arch=('i686' 'x86_64')url="https://work.weixin.qq.com/"license=('Proprietary')groups=()de.
2021-06-10 18:39:41
2768
1
原创 巧用Nginx内置变量 实现企点等第三方网页应用开发时的本地调试问题
问题场景例如这是企点应用的管理后台,展位上是固定的URL不能改,而此时前端同事有多名,可能需要设置为本地方便并行调试多个业务需求。小程序、公众号等不可改地址的平台同理解决方案1. 登录管理后台频繁手动改也就是A同事要开发就得改URL成A同事启动的项目地址URL(局域网ip不同),B同事开发就要改成B同事的URL,显然是很麻烦的,而且管理员帐号只有一个人能绑定,而这个人就要遭受前端的人肉DNS。2. 每个同事自行搭建代理好处是自己动手丰衣足食,缺点是不是每个同事都会,而且需要每个人都搭建例如该
2021-06-07 00:13:27
480
原创 将网页上所有canvas下载为图片
console 中定义以下两个函数function saveFile(data, filename) { var save_link = document.createElementNS( 'http://www.w3.org/1999/xhtml' , 'a' ); save_link.href = data; save_link.download = filename; var event = document.createEvent('MouseEvents');
2021-03-04 14:53:53
2008
2
原创 hosts-group (参考SwitchHosts) 基于Go开发 B/S模式 | exe 仅 3 M
Github 地址设计思路,多个host文本文件 进行分离,依据后缀判断文件是否启用,更新操作会将这些文件合并为结果文件。基于Gin 框架提供 api, 纯原生js实现页面逻辑。
2021-02-07 15:56:07
582
原创 公告或通知的未读 设计(MySQL Redis)
目录 start设计公告通知未读1. 关联表存 已读或未读2. Redis Set 存储 未读3. Redis bitmap 存储已读/未读4. 客户端存储已读目录 end|2021-01-13 19:29|设计公告通知未读需求: 发布公告,用户维度的已读未读,有一键已读功能,首条未读需求1. 关联表存 已读或未读存储公告表公告和用户关联表存已读新增无需操作关联表,一键已读就需要未读的关联数据批量写入,数据量会持续增长存未读新增公告时,大量数据写
2021-01-13 19:32:57
3789
原创 java.security.InvalidKeyException: Illegal key size
AES加解密报错,发生在低版本的 JDK 上,如果不想升级JDK https://www.oracle.com/java/technologies/javase-jce8-downloads.html 下载覆盖 $JAVA_HOME/jre/lib/security 的 文件stackoverflow
2020-12-10 19:10:31
469
1
翻译 Linux 使用 PDFtk 合并 分割 加密 解密 PDF
A B 两个文件页码交叉合并PDF:pdftk A=even.pdf B=odd.pdf shuffle A B output collated.pdf或者B文件的反序:pdftk A=even.pdf B=odd.pdf shuffle A Bend-1 output collated.pdf解密一个PDFpdftk secured.pdf input_pw foopass output unsecured.pdf使用128位强度加密PDF(默认),保留所有权..
2020-11-11 15:33:15
1086
原创 Linux上基于 Golang 实现 KeyLogger 按键记录
项目主页 实现原理:记录每次按键 键值和时间戳, 记录每天累计键输入次数报表计算规则:获取时间段内 Top 值的键值,得到需要展示的键值获取时间段内每天 键值 输入次数热力图一周内每个小时的输入次数...
2020-09-08 17:40:52
1500
原创 Windows10 和 Manjaro20双系统安装问题记录
前提;首先系统已经安装Win10, 固态硬盘先做U盘(原先都是使用Deepin的制作器,这次不灵了,还尝试了 dd ImgWriter,最终使用rufus成功)确认BIOS关闭 Fast Boot按以往经验(曾安装Win10 Deepin Manjaro三系统均正常使用)直接以UEFI模式启动安装 进行到最后一步失败了 和该楼主问题基本一致但是通过该楼主的方式,能通过U盘启动系统后,手动找引导,进入在固态上安装引导失败的Manjaro系统Using livecd v17.0.1 (and abo
2020-05-17 17:23:25
2361
原创 Linux 之 网络
【网络管理】DNS域名和资源转换的服务解析域名的顺序一般是, 先在本机找,找不到去找上连DNS服务器, 然后根域DNS服务器 这时候就有了几种方式,递归, 迭代, 递归加迭代(为了减轻全球13台根的压力)假设是访问这个域名 scs.bupt.edu.cn (bupt.三级 机构域名, edu 二级行业域名, cn 一级国家域名)递归: 本机->上连->根->...
2020-04-11 01:20:52
1227
原创 【踩坑】 Maven中依赖的隐式冲突 可能导致的 NoClassDefFoundError NoSuchMethodException 等问题
参考: 重新看待Jar包冲突问题及解决方案参考: Maven依赖冲突的产生原因和解决方式通过以上文章, 大致能理解和解决Maven依赖冲突的问题, 但是这里存在一个隐式的问题, 而且问题还依据不同的平台可能还有不同的表现Github: 问题代码示例例如示例中的类 SimpleTransformer 如果直接运行就会抛异常 ExceptionInInitializerError 在多...
2019-06-15 23:51:53
1159
2
原创 Java 中的 NIO 初学
Github: 案例源码地址Java中的IO个人代码: IO流的相关学习 | Socket NIO参考博客: 五种IO模型IO 简史BIO NIO AIO演变BIOJava1.0 到 Java1.3同步阻塞式IO 但是能基于 BIO 手动实现 伪异步IONIOJava1.4 引入; 非阻塞式IO, 虽然官方名称为 New IO, 民间称为 No-blocking ...
2019-04-29 20:34:50
676
原创 使用 Tmux 提高工作效率
Tmux 能方便的管理多个终端回话,对于终端重度依赖患者来说非常方便, 最开始我是使用打开多个终端模拟器, 比如 Qterminal每个Qterminal放的是一组标签页,但是切换时比较麻烦, 占用资源也大 所以就学习使用了闻名已久的Tmux汇总: 自定义配置文件上手也是很简单的新建会话 tmux new -s myth连接会话 tmux a -t test显示所有 tmux l...
2019-03-02 16:20:44
900
原创 通过DNS屏蔽广告
最初级的做法就是直接F12看到页面上插入的广告的iframe的域名然后修改 host 文件 比如配置百度的几个域名 就能把一些页面上嵌入的百度广告关掉(缺点不支持通配符,麻烦, 真想 *.baidu.* …)0.0.0.0 cpro.baidu.com0.0.0.0 pos.baidu.com搭建本地 DNS 服务器, 优点: 已经有很多人贡献了屏蔽广告的配置, 而且支持通配符配...
2019-01-27 16:09:00
8623
原创 使用Hexo从笔记仓库搭建自己的博客
HexoOfficial Doc成果 : blog.kuangcp.top参考 博客 | 部署Hexo 在docker中下拉笔记仓库, 然后构建, 然后推送到github的page上 其实可以更为简单, 使用travi.ci 进行构建和发布 参考 安装 hexonpm install -g hexo新建一个目录然后初始化 hexo init根据md生成静态资源文件 ...
2018-12-29 20:32:48
791
转载 Python - sys.path
sys.pathDoc: Python pathsys.path 是 指定模块的搜索路径的字符串列表。类似于Java的 ClassPath, Go的 GOPATH, 让解释器知道去哪找包查看系统的 sys.path, 进入交互解释器执行: import sys print("\n".join(sys.path))修改sys.path的各种方式代码中直接添...
2018-11-30 09:11:06
1013
原创 借助码云快速安装 golang.org/x/lint/golint 和 golang.org/x/tools/ 等依赖
GO基本开发环境搭建入门时使用VSCode是比较方便的, VSCode 会推荐我们安装如下工具tools 工具集guru golang.org/x/tools/cmd/gurugorename golang.org/x/tools/cmd/gorenamelint golang.org/x/lintgolint golang.org/x/lint/golint...
2018-10-20 19:53:56
6849
原创 震惊 所有人的博客首页都有这篇神秘的隐藏博客
打开任意一个人CSDN博客的首页, 比如我 https://blog.csdn.net/kcp606F12 打开控制台 运行 document.getElementsByTagName("h4")你会发现第一个节点是隐藏的 内容如下&lt;div class="article-item-box csdn-tracking-statistics" style="display: non
2018-09-29 18:17:26
958
转载 Java: 单例模式的七种写法
转自: Java:单例模式的七种写法 不过一般来说,第一种不算单例,第四种和第三种就是一种,如果算的话,第五种也可以分开写了。所以说,一般单例都是五种写法。懒汉,恶汉,双重校验锁,枚举和静态内部类。第一种(懒汉,线程不安全) 这种写法lazy loading很明显,但是致命的是在多线程不能正常工作, 有可能会实例化多个对象public class Singleton...
2018-09-09 12:03:37
1440
原创 Gradle 使用Maven的本地仓库(坑)
尝试了半天, 最后发现 Gradle 构件的目录结构就和maven不同, 他就不打算和Maven兼容!!!! Gradle 目录结构(和Go类似)├── com.alibaba│ └── fastjson│ └── 1.2.47├── com.fasterxml.jackson.core│ └── jackson-annotations│ ...
2018-08-13 20:25:02
14288
8
原创 Linux 终端常用快捷键
终端快捷键鼠标中键 粘贴鼠标左键已选择的文本 VSCode中也适用!num history 中第 num 条命令!! 上一条命令ls !$ 执行命令ls,并以上一条命令的参数为其参数!?string? 执行含有string字符串的最新命令Ctrl L 清屏等价于clear,清除所有这个 shell 提示屏幕中显示的数据。 Mysql也适用reset 刷新 shell 提示屏幕。如...
2018-08-12 23:42:02
1722
原创 Gradle使用Lombok的正确方式 避免Gradle deprecated annotation processor warnings for lombok
我使用的是Gradle 4.9弃用的方式 compile(‘org.projectlombok:lombok:1.18.2) 当构建项目的时候会出现如下信息The following annotation processors were detected on the compile classpath: 'lombok.launch.AnnotationProce...
2018-07-29 11:11:40
20380
转载 使用Git.Svn等版本控制系统的提交准则
参考博客: SVN提交更新的一个准则提交之前先更新 基本原则是要随时更新,随时提交 。当完成了一个小功能,能够通过编译并且并且自己测试之后,谨慎地提交。如果提交过程中产生了冲突,则需要同之前的开发人员联系,两个人一起协商解决冲突,解决冲突之后,需要两人一起测试保证解决冲突之后,程序不会影响其他功能。如果提交过程中产生了更新,则也是需要重新编译并且完成自己的一些必要测试,再进行提...
2018-06-26 10:22:48
1019
原创 Java操作JSON的三种库对比 Jackson Gson fastjson 未完....
前言Gson Maven构件地址 | Github地址 目前最新版为 2.8.5 其jar大小为 235kb使用方式// Gradle引入依赖compile group: 'com.google.code.gson', name: 'gson', version: '2.8.5'// 例如转化一个类型不固定的List, 自定义类型同理Gson gson ...
2018-05-30 18:33:35
20030
4
原创 SpringBoot常见部署方式 jar war docker
项目部署生成指定文件war部署为war必须的类,一般在创建项目时选war就会自动生成,选jar就要手动添加 public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBui...
2018-05-23 09:41:43
1741
原创 使用Js和H5绘制流程图
主要使用的项目 dagre-d3 | 详细文档 简化一下官方的一个demo为我所用 其中依赖的两个Js文件 https://d3js.org/d3.v4.min.js https://dagrejs.github.io/project/dagre-d3/latest/dagre-d3.js<!doctype html><meta charset...
2018-05-06 15:15:34
38768
8
原创 SpringMVC 和 前端的JSON交互
如果要使用前后端分离的模式,JSON作为数据交互的载体是必然的, 简单直接,虽然protobuf什么的效率更高,但是操作性就复杂多了 所以,记录下JSON交互中遇到的坑接收JSON数据$.ajax({ type:"POST", url:"/rest/user", dataType:"json", contentType:"...
2018-04-30 16:33:38
1082
原创 SpringBoot2 集成 Security JWT
Github 完整源码SpringBoot2中使用Security整合JWT 参考 原项目 修改而来 | 博客运行起来后执行命令获取TOKENcurl -H "Content-Type: application/json" -X POST -d '{"username":"admin","password":"123456"}' http://127.0.0.1...
2018-04-25 12:10:13
4710
原创 SpringBoot2 通过JPA 使用PostgreSQL 错误 createClob() 方法尚未被实作
04-24 14:24:25.098 | restartedMain |-INFO o.h.e.j.e.i.LobCreatorBuilderImpl:124 - HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetE...
2018-04-24 16:01:01
2745
原创 SpringBoot2的跨域配置
官方 CORS support in Spring Framework 参考博客 第二十五章:SpringBoot添加支持CORS跨域访问 这是SpringBoot1, 但是大致一样 参考博客 Spring Security的WebMvcConfigurerAdapter已过时 参考博客 SpringBoot 实现前后端分离的跨域访问(CORS)虽然有错误,但是可以参考学习...
2018-04-22 10:06:37
5335
原创 解决SpringMVC乱码问题
问题场景:采用传统的JSP但是用了前后端分离,使用JSON传输数据, JSP设置都是正确的: <%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8"%>web.xml 的编码过滤器配置并没有用。 参考博客 Spring MVC 响应报文乱码 参考博客 ...
2018-04-21 11:27:53
974
原创 Linux上使用Python 监控键盘输入,生成每日报表
查看输入设备 查看输入设备列表ls /dev/input 查看输入设备的详细信息 cat /proc/bus/input/devices 根据描述,找到键盘对应的eventX例如我的键盘是这个: event0$ cat /proc/bus/input/devices I: Bus=0011 Vendor=0001 Product=0001 Version=ab...
2018-04-08 22:13:37
3219
hosts-group.1.3.3.exe
2021-02-08
hosts-group.1.2.0.exe
2021-02-08
hosts-group-v1.1.exe
2021-02-07
robot3t MongoDB 客户端 Linux
2020-11-11
JDK-Linux-1.8.0_211.zip
2019-05-15
Genymotion-ARM-Translation_v1.1
2017-09-14
同一个镜像 跑在两个服务器上面开的两个容器,内存占用一个是另一个的两倍,为什么?
2017-10-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人