- 博客(2054)
- 资源 (57)
- 收藏
- 关注
原创 mysql JDBC的三种查询(普通、流式、游标)
在 TCP 中发送端和接收端**可以是客户端/服务端,也可以是服务器/客户端**,通信的双方在任意时刻既可以是接收数据也可以是发送数据(全双工)。由于MySQL方不知道客户端什么时候将数据消费完,而自身的对应表可能会有DML写入操作,此时MySQL需要建立一个临时空间来存放需要拿走的数据。在执行st.executeQuery()时,jdbc驱动会通过connection对象和mysql服务器建立TCP连接,同时在这个链接通道中发送sql命令,并接受返回。(第一次调用的正常,第二次的抛出异常)。
2023-05-17 15:32:12
146
原创 Mysql在大表中删除大量数据的优化
假设有一个表有3000万条记录,需要在业务不停止的情况下删除其中status=1的所有记录,差不多有600万条。如果直接使用delete from tab_name where status=1;会触发lock wait timeout exceed的错误,因为这条语句涉及的记录数太多。执行过程DDL语句,删除整张表和表结构,以及表的索引、约束和触发器。DDL语句,只删除表数据,表的结构、索引、约束等会被保留。DML语句,删除表中数据回滚不可不可可以事务。
2023-04-25 11:14:29
649
转载 通过openjdk源码分析ObjectMonitor底层实现
在我们分析synchronized关键字底层信息时,其中谈到了Monitor对象,它是由C++来实现的,那,到底它长啥样呢?其中.hpp是c++的头文件,其具体的实现是以cpp中,接下来就得打开它们来看我们想了解的东东了,是不是很刺激?继续来看其他的一个成员变量。然后点击左侧browse。
2023-04-12 00:06:51
103
原创 查看docker容器的启动参数
查看docker容器启动参数,主要介绍了runlike命令和get_command_4_run_container
2023-04-04 15:35:09
311
原创 Mysql Nested-Loop Join算法和MRR
BNL 主要针对被驱动表关联字段无索引时的优化,(当被驱动表没有索引或索引失效时,无法是用INLJ,mysql就会通过BNL进行优化)如果在EXPLAIN输出中,当Extra值包含Using join buffer(Block Nested Loop)且type值为ALL,index或range时,表示使用BNL;也说明被驱动表的表关联字段缺少索引或索引失效无法有效利用索引。BNL 算法是对 SNLJ 算法的优化,并且可将该算法 BNL 提升至 INLJ 进行优化。
2023-03-03 11:06:03
522
翻译 说说Java中的几种JVM级别的锁
根据摩尔定律,计算机的性能将继续飙升,因为计算基础设施的相关成本将随着时间的推移继续下降。具体到CPU,已经从简单的单核系统发展到多核系统,缓存性能也有了飞跃性的提升。随着多核 CPU 的出现,计算机现在可以同时运行多个任务。并且,随着硬件开发的多项提升带来的显着效率提升,软件层面的多线程编程已经成为必然趋势。然而,多线程编程也带来了一些数据安全问题。随着所有这些趋势的发展,业界已经认识到,当存在安全漏洞时,也必须有相应的防护措施。顺应这种趋势,虚拟“锁”被发明出来,以解决线程的安全问题。
2023-02-23 15:24:50
404
原创 fasterxml jackson反序列化时对于非静态内部类报错
java中通常使用jackson、fastjson两个库来处理json。后者的api使用起来比较方便,但是安全漏洞太多了。对于嵌套结构,定义了一个包含内部类的java类来接收,如果这个复杂结构是一个数组形式,那么反序列化时会报上面错误。
2023-02-16 20:52:48
489
翻译 java gc日志文件ROTATING
gc日志是优化应用程序性能和解决内存问题的重要工具。通过传递“-Xloggc”JVM 参数,可以在特定文件路径中生成垃圾收集日志。使用这种方法配置gc文件:每当应用程序重新启动时,旧的 GC 日志文件将被新的 GC 日志文件覆盖,因为文件路径相同(即 /home/GCEASY/gc.log)。因此,您将无法分析在重新启动应用程序之前存在的旧 GC 日志。
2023-02-06 23:54:57
389
翻译 JVM in a Container:不同jdk版本在容器中的表现
在 Java 8u131 和 Java 9 之前,JVM 无法识别容器设置的内存或 CPU 限制。 Java 8u131 和 Java 9是第一个实现该功能的一个实验性特性,并且有bug;但在 Java 10 中,内存限制是自动识别和强制执行的,然后将此功能反向移植到 Java-8u191。
2023-02-01 12:31:58
498
原创 java伪随机数生成器
随机数分为:伪随机数和真随机数。后者具有:随机性、不可预测性、不重复性的特点,一般来说都是通过自然界物理信息来生成,例如使用硬件采集器手机温度等信息。伪随机数分为:弱伪随机数和强伪随机数,后者可以用于密码学领域。本文重点介绍在java下的伪随机数生成方法,包括:Random、ThreadLocalRandom和SecureRandom。
2023-01-15 22:33:13
1125
2
原创 http协议之Range
http协议中可能会遇到:请求取消或数据传输中断,这时客户端已经收到了部分数据,后面再请求时最好能请求剩余部分(断点续传);或者,对于某个较大的文件,能够支持客户端多线程分片下载...以上在我们平时应用中已经有很多产品支持了,其中原理就和http协议中的Range有关。HTTP协议博大精深,设计有很多巧妙的地方,Range也许就是一处吧。
2023-01-12 19:25:38
2265
1
转载 从表到里学习JVM实现
自学jvm底层原理,来自国内早起R神的博客。其实任何高端技术,都不是别人教出来的,一定是兴趣或来自内心的某种力量驱使自己不断向上研究的。
2023-01-09 10:45:28
277
原创 ESNI 和ECH的前世今生
ECH 是将会是 TLS 的又一次重大升级,这一次使得每次连接除了其发起者和接收者之外,没有人能够知道访问的是什么,有助于进一步保护用户隐私。尽管 ECH 还是一项进行中的工作,但随着工作的继续,显然我们离更安全的互联网又近了一步。ESNI 与 ECH 的前世今生 - ZingLix Blog以下是Good-bye ESNI, hello ECH!译文现代 Internet 上的大多数通信都是加密的,以确保其内容仅对端点(即客户端和服务器)是可理解的。
2023-01-05 22:16:30
1180
原创 TLS 1.3 带来了什么?
简单来说,TLS 1.3 又是一次人类对安全性和 RTT 的斗争。实现了前向安全,只留下目前安全的算法,连接所需的耗时进一步降低至 1-RTT,特殊情况下可以实现 0-RTT。
2023-01-03 21:56:04
748
原创 Java7的异常处理新特性addSuppressed()方法
学习使用Java7新语法try-with-resources,在查看编译文件时,接触到addSuppressed()方法。记录一下使用方式。
2022-12-26 20:43:15
352
1
转载 RST及java socket关闭后读写的各种异常
方法关闭了Socket,虽然TCP规定半关闭状态下B仍然可以接收数据,但close动作关闭了该socket上的任何数据操作,如果此时A继续write,B将返回RST,A的该次write无法立即通知应用层(因为write仅把数据写入发送缓冲区),只会把状态保存在tcp协议栈内,下次write时才会抛出。都关闭,已经排队等待发送的数据会被尝试发送,最后(默认)发送FIN。,它会发送FIN但依然可以读取数据;后,无论是发送FIN/RST关闭的,之后再读写均会抛。发送FIN,4次挥手,连接关闭,一切都很和谐。
2022-12-21 21:27:59
254
原创 SO_REUSEPORT socket选项介绍以及在nginx上的配置
SO_REUSEPORT是socket的一个选项:1)开启内核的网络链接分配负载均衡:允许多个进程/线程 bind/listen相同的IP/PORT,提升了新链接的分配性能。2)在内核级解决了惊群问题:每个进程可以 bind/listen相同的IP/PORT,相当于每个进程拥有独立的 listen socket 的完全队列,避免了共享 listen socket 的资源争抢,提升了并发的吞吐。内核通过哈希算法,将新链接相对均衡地分配到各个开启了 reuseport 属性的的进程。
2022-12-15 18:32:39
422
转载 使用ClassFinal对java项目加密
ClassFinal是一款java class文件安全加密工具,支持直接加密jar包或war包,无需修改任何项目代码,兼容spring-framework;可避免源码泄漏或字节码被反编译。依赖环境:jdk1.8Gitee:ClassFinal: Java字节码加密工具1、项目模块说明ClassFinal的核心模块,几乎所有加密的代码都在这里;ClassFinal打包成独立运行的jar包;ClassFinal加密的maven插件;2、功能特性。
2022-11-17 11:25:11
1649
8
转载 一文详解 HTTPS 与 TLS证书链校验
HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议,是一种通过计算机网络进行安全通信的传输协议。HTTPS利用SSL/TLS来加密数据包,经由HTTP进行通信。其设计的主要目的是,提供对网站服务器的身份认证、保护交换数据的隐私与完整性。SSL/TLS握手协商:用非对称加密的手段传递密钥,然后用密钥进行对称加密传递数据。
2022-11-07 21:55:23
933
转载 理解LINUX的MEMORY OVERCOMMIT
一个保守的操作系统不会允许memory overcommit,有多少就分配多少,再申请就没有了,这其实有些浪费内存,因为进程实际使用到的内存往往比申请的内存要少,比如某个进程malloc()了200MB内存,但实际上只用到了100MB,按照UNIX/Linux的算法,物理内存页的分配发生在使用的瞬间,而不是在申请的瞬间,也就是说未用到的100MB内存根本就没有分配,这100MB内存就闲置了。这都是有风险的机制,重启有可能造成业务中断,杀死进程也有可能导致业务中断,我自己的这个小网站就碰到过这种问题,
2022-10-13 22:21:10
190
转载 java中iterator和iterable的区别
ptr = 0;}}可以看到我们在next中指定的遍历规则是根据ArrayMap的key值进行遍历。}如上所示,通过创建KeyIterator对象进行迭代访问(注意外部类创建内部类对象的方式)。(1)学会深入思考,一点点抽丝剥茧,多想想为什么这样实现,很多问题没有自己想象中的那么复杂。(2)遇到疑惑不放弃,这是提升自己最好的机会,遇到某个疑难的点,解决的过程中会挖掘出很多相关东西。
2022-09-30 20:59:30
573
1
原创 Grafana 重置 admin 密码
Grafana 的使用越来越广泛,在使用过程中经常遇到要重置密码的需求,尤其是 admin 密码,先说常规问题。
2022-09-14 23:43:15
1536
转载 guava hasing使用
Hash里面比较重要的类有:Hashing、HashFunction、Hasher、HashCode、Funnel、PrimitiveSink。
2022-09-08 19:48:16
232
原创 一文详解 RSA 非对称加密算法
RSA加密算法是一种非对称加密算法。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。1973年,在英国政府通讯总部工作的数学家克利福德·柯克斯(Clifford Cocks)在一个内部文件中提出了一个相同的算法,但他的发现被列入机密,一直到1997年才被发表。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。..
2022-08-25 20:58:35
3016
原创 guava之基本工具
写一个hashCode本来也不是很难,但是Guava提供给我们了一个更加简单的方法--Objects.hashCode(Object ...), 这是个可变参数的方法,参数列表可以是任意数量,所以可以像这样使用Objects.hashCode(field1, field2, ..., fieldn)。Null很少可以明确地表示某种语义,例如,Map.get(key)返回Null时,可能表示map中的值是null,亦或map中没有key对应的值。使用Null以外的特定值,会让你的逻辑描述变得更清晰。
2022-08-24 12:13:15
281
1
原创 Docker 中jmap报错:Can‘t attach to the process: ptrace(PTRACE_ATTACH问题
通过docker启动了一个java服务。登陆到容器中,通过jmap查看jvm相关信息,报错:经过查看资料发现,这不是什么 docker 或者jmap的Bug,而是 Docker 自 1.10 版本开始加入的安全特性。 jmap 这类 JDK 工具依赖于 Linux 的 PTRACE_ATTACH,而 Docker 自 1.10 版本开始,默认的 seccomp 配置文件中禁用了 ptrace。解决方法:1、–security-opt seccomp=unconfined关闭seccomp,在启动容器时
2022-07-13 14:21:37
1483
原创 Nginx proxy_cache 使用示例
动态网站使用缓存是很有必要的。前段时间使用了 nginx proxy_stroe 来保存静态页面,以达到缓存的目的。当然 proxy stroe 用来做缓存是不够好的方案(stroe存储在磁盘,而proxy_cache使用的是内存)。缓存这一块当然还有 squid 之类的独立缓存服务器。如果使用 nginx 为 web 服务器,还要加个 squid 来缓存,是觉得多了一个 http 请求层。幸好 nginx 0.7 有了 proxy_cache 来做这个缓存的事。之前来有个 ncache 是新浪员工开发的
2022-07-09 23:24:21
395
原创 Nginx 通过upstream反向代理报 400 Bad Request
通过nginx做反向代理,配置如下:现象:返回的http状态吗400.查看日志没有抱错。原因:Host 为空。解决方法:设置host值搜索该问题时,了解到:如果upstream转发域名时也会遇到这个问题,描述如下:所出现的现象就是,从 192.168.1.10 或者 192.168.1.11 请求 192.168.1.11 的 12345 端口,都会返回 400。最初给请求头加上了 Host ,比如 或者 ,但还是报错,于是只好抓包进行查看,包括经过 Nginx 12345 端口转发的
2022-07-09 00:25:48
3198
3
parquet-tools-1.6.0rc3.zip
2020-07-24
jQuery-Plugin-For-Easily-Readable-JSON-Data-Viewer.zip
2019-12-31
yesmeck-jquery-jsonview-v1.2.3-14-g01b1eb8.zip
2019-12-30
linux解析json工具——jq
2017-09-16
jquery 全屏显示插件
2015-03-20
apache-maven-3.2.3-bin
2014-10-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人