- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 TCP-4次挥手小记
本篇读完需要10分钟,读完能了解: 1. TCP4次挥手2. 为什么要4次挥手3. TIME_WAIT等待2MSL的原因4. TCP故障检测
2022-09-09 10:10:42
708
原创 用SpringBoot做一个Windows可挂载到本地的NAS网盘
先看使用效果能在上面修改删除添加文件:1. 准备工作调研了一下,windows挂载的几种方式如下:1. NFSv3(RFC1813)可以基于Netty做开发,需要基于RFC1813实现linux的网络协议服务器2. FTP(以前实现过 Apache有开源的Jar内嵌了FTP服务)3. WebDav(tomcat自带了WebDav的Servlet 基于源码改造改造即可使用)2. 选型工作因为NFSv3只有RFC文件,资料比较少如果要实现需要抓包看TCP和UDP,成本较大所以未采
2022-01-06 12:16:19
3957
14
原创 支持回拨性能超过SNOWFLAKE3倍的烟花ID生成器
最近写了个ID生成器: FireWork。项目地址: firework-id-generator16 byte顺序字符串[8byte时间戳 1byte回拨位 2byte ServiceId 5byte序列号]序列号不在下一秒重置总体趋势递增支持时间到 8888年左右支持3844台相同微服务之间id唯一支持时钟回拨无数次,61次后时间还小于上次回拨时间时通过消费未来时间确保ID不重复支持监听时钟回拨告警或者其他业务处理性能在多线程的时候表现良好(12000/ms 多余snowflake 400
2021-09-28 18:50:08
15657
原创 阿里云语雀空间防泄露(关于墨菲定律的演变 netty自撸http&https代理 Cookie Copy方案始末)
博主的公司用了语雀(https://www.yuque.com/) 做知识库,遇到了个巨坑。本着公司资料保密的原因,公司专门购买了空间(会给单独域名)。原来设想在空间中设置只允许沙盒出口地址访问,然后在沙盒中设置只能访问该空间,这样完美地把资料放在沙盒里面。但是墨菲定律来了:1. 语雀引了一堆OSS各种不同域名。(怎么收集所有的域名开通网络)2. 语雀登录需要跳转到个人语雀地址。(意味着登录空间必须开启 https://www.yuque.com/如果打开的话可以把空间里的资料下来放到个人.
2021-05-08 20:47:52
17585
原创 [已实现]沙盒环境并不安全,不联网的机器并非Copy不出东西
先放结果:可以!!。看图片其实已经能猜到怎么做了,二维码!!只要把文件的内容分片编码成二维码,然后外面解析二维码在文件对应的位置写入数据就OK了。理论上所有物理隔离的只要有显示屏幕,有摄像头就都能传输数据。代码地址coder-transfer使用方法:将代码打成jar包接收文件: eg: java -jar code-transfer-0.0.1-SNAPSHOT.jar R 10 30 550550 512 100 1.zip R表示接收 10 30 是截取屏幕的左上角 550 550
2021-01-06 20:54:09
36694
原创 怎么侵入性最少地代理一个类下的所有方法,以及方法返回对象的所有方法
想写一个数据库连接工具[DataGrip]连接Redis的功能,所以要知道它调用了Driver的哪些类。但是苦于很少有代码侵入性低但是能监控所有执行方法返回值的。干脆自己撸一个代码比较少,但是解决了几个比较头疼的问题终于算是实现了。 只要给定一个入口类,几乎把该类下面的所有方法及其方法的返回的类都能监控到,其中操作比较有意思。主要涉及的技术点:动态字节码生成无参构造函数的类,骗过CGLIB检测 自写类加载器加载类 重写CGLIB代理类,不用通过构造函数,通过实体直接生成代理类效果图,只对Dr.
2020-12-24 16:43:27
51031
1
原创 h2:无法自动建库解决
1.4.198 (2019-02-22) 版本开始,H2不再自动创建数据库,很难在网上找到有解决方案,故down了源码Connection to jdbc:h2:tcp://0.0.0.0:6666/./aika failed. [90149][90149] Database "/home/Hex/IdeaProjects/h2database/h2/aika" not found, either pre-create it or allow remote database creation (not
2020-09-23 15:39:01
55214
6
原创 关于结构化面试
作为面试官,一直以来,面试都存在一些问题:1.如何在适当的时间打断,维持自己的节奏。 2.怎么让参试人员发挥出应有的水平。 3.怎么去了解参试人员能否胜任竞聘的岗位。 ....参与金牌面试官的培训,老师介绍了结构化面试和无领导小组讨论。先说说两种面试方法的步骤:1.结构化面试[基于选拔性素质模型]1)构建选拔性素质模型2)设计机构化面试的提纲(题库)3)制定评分标准的等级表4)培训结构化面试官5)结构化面试打分2.无领导小组讨论1)准备 题目,评分表格,场地,参
2020-08-14 11:45:46
69778
原创 字典树[包含搜索和计算数量的功能]
package com.cic.crm.dataplatform.service.scene.field;import java.util.HashMap;import java.util.Map;import java.util.Optional;/** * @Author luoshu * @Class TrieNode * @Description 字典树节点 */public class TrieNode { private Character data; .
2020-07-24 17:51:49
29441
原创 扫描一个类所在目录下的所有类的类名[包括Jar和非jar]
/** * 扫描一个类所在目录下的所有类的类名 * * @param clazz 要扫描的基础类 * @param filter 过滤器 为空的时候不过滤 * @return 一个全路径类名的List */ public static List<String> scanAllClass(Class clazz, Function<String, Boolean> filter) { List<.
2020-07-24 11:58:38
46165
原创 [已实现]adb偷取蚂蚁森林能量
先放效果图代码如下 需要图片素材的在附件里import osimport sysimport aircv as acimport timebashPath = "D:/Tools/adb1/py/pic/"sys.path.append("D:\Tools\adb1")#os.popen("adb shell am start -n com.eg.android.AlipayGphone/com.eg.android.AlipayGphone.AlipayLogin")h..
2020-07-09 15:33:56
38951
原创 SpringBoot Redis自适应配置[Cluster Standalone Sentinel]
核心代码段提供一个JedisConnectionFactory 根据配置来判断 单点 集群 还是哨兵 @Bean @ConditionalOnMissingBean public JedisConnectionFactory jedisConnectionFactory() { JedisConnectionFactory factory = null; String[] split = node.split(","); Set&.
2020-07-07 14:40:59
54898
2
原创 BFS层次遍历的模板
from collections import dequeclass TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Nonedef levelOrder(root: TreeNode) : queue = deque() if root: queue.append(root) while queue:.
2020-07-03 10:34:43
70453
原创 JAVA获取编译GC内存运行时环境参数信息[ManagementFactory研究,全部Bean方法调用示例]
ManagementFactory是JAVA提供用于监视和管理 Java虚拟机以及 Java 虚拟机在其上运行的操作系统。它同时允许从本地和远程对正在运行的 Java虚拟机进行监视和管理,提供JVM堆的使用情况,以及GC情况,线程信息。因为ManagementFactory 提供的Bean比较多,一个个看比较麻烦。故而用反射获取所有bean,调用bean下的所有无参方法,将结果格式化成报文。这样就能比较全面的看到ManagementFactory提供的能力。然后根据报文,找自己需要的bean和方..
2020-06-17 18:31:51
21946
原创 [已实现]暴力破解路由器管理密码
搬新家以后,第一时间连上网络,登录路由器后台。博主租的房子是某平台的,网络是由平台提供的。和上次租房不同的地方在于,这次路由器后台管理密码居然和给的wifi连接密码不一样了,肯定是有人改过密码了!admin 等弱口令都试过了,全都不管用!对一个it技术人员来说,被人掌握网络生杀大权肯定是无法容忍的!第一次测试的时候尝试用telnet登录路由器,发现密码已经被更改,无法登录,预料是跟web控制台密码一起改变的。...
2020-06-13 12:53:37
134096
14
原创 数据库幻读解决方案
有时候我们会有业务场景去解决数据库幻读现象:(比如某条记录的某几个属性合起来需要在记录里唯一)这个时候我们需要做的是添加一个校验字段对他做唯一约束,值是这几个字段的拼接这里为什么用校验字段而不用原字段呢? (有时候我们在做删除的时候只做逻辑删除 这时候唯一约束就好导致失效的记录让有效的记录无法插入, 而校验字段不一样 你在做失效处理的时候给校验字段赋一个随机值就好了)...
2020-06-10 13:42:35
46371
原创 集合里有多种子类反序列化 子类属性丢失问题 Java代码实现[解决循环引用问题]
先放一段代码public class Test { public static void main(String[] args) { //建立一个数组 第一个放入child 第二个放入parent List<Parent> list = new ArrayList<>(); Parent parent = new Parent(); parent.setX("1"); Child chil
2020-06-07 20:59:34
60423
原创 JPA+H2内嵌数据库
开发个人项目的时候有时候会遇到,用数据库过于麻烦,这时候内嵌一个H2是一个不错的选择。更何况H2提供管理控制台界面,可以直接执行Sql语句项目里要内嵌H2的话需要引入H2的依赖 <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.197</version>
2020-06-04 13:47:45
67189
原创 关于blob与流互转的问题
网上有好多blob与byte[]互相转换的代码,但是很难找到流直接写入到数据库的。显然流写入效率更高,内存占用更少(不需要把所有数据放到内存里面),一下便是代码(基于Spring Data JPA的版本的 JDBC的话实现类同)import org.hibernate.Hibernate;import org.hibernate.Session;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springfra
2020-06-02 10:18:52
27630
原创 Confluence,语雀,和钉钉知识库的比对
功能 Confluence 语雀 钉钉知识库 可视化协同编辑 支持 支持 支持 登录登出功能 本地部署的时候可以联动ldap 或者自己管理用户 注册用户账号 ...
2020-04-20 16:32:51
35373
4
原创 Hase权威指南笔记
第一章1.1 海量数据的黎明:RDBMS 结构化数据 传统关系型数据库 科德十二定律 [Codd's 12 rules] 满足新的工作负载提出的 列式存储[column-oriented] 大规模并行处理[Massively Parallel Processing , MPP]1.2 关系数据库系统的问题: 1. 分区[sharding] 重分区[reshard] 虚拟分...
2020-04-16 22:39:39
54373
原创 海盗分金-动态规划实现
经济学上有个“海盗分金”模型:是说5个海盗抢得100枚金币,他们按抽签的顺序依次提方案:首先由1号提出分配方案,然后5人表决,投票要超过半数同意方案才被通过,否则他将被扔入大海喂鲨鱼,依此类推。假定“每个海盗都是绝顶聪明且很理智”,那么“第一个海盗提出怎样的分配方案才能够使自己的收益最大化?”推理过程是这样的1.如果只剩两个海盗 那么海盗4无论提什么,海盗5都会否决.2.所以...
2019-06-19 23:46:23
45640
原创 数据库隔离级别[对应封锁协议]
1.读未提交(read uncommit)一级封锁协议(读取数据的时候不加锁,更新的时候整个加X锁)b事物执行到一半,a事物不检测锁直接读取,结果b事物回滚了,导致a事物读出了一个错的结果,这就是脏读。2.读已提交(read committed)二级封锁协议(读取数据的时候加S锁,更新的时候加X锁)a事物每次读取的时候都会尝试获取s锁,如果b事物在更新,则a阻塞等待b事物释放。...
2018-08-09 21:58:36
197452
3
原创 ubuntu 安装 OpenResty
1.安装库 perl 5.6.1+, libpcre, libsslapt-get install libpcre3-dev libssl-dev perl make build-essential curl*2.安装zlib-devel,nignx gzip模块必须库(在ubuntu里叫zlib1g.dev)apt-get install zlib1g.dev3.下载安装O...
2018-08-06 14:50:20
199248
kettle8.3.0新版[ETL工具,可以在Windows、Linux、Unix上运行]
2019-07-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人