
java
文章平均质量分 52
QuillChen
hello world!
展开
-
计算机操作系统日志
计算机os操作系统原创 2021-11-08 10:29:18 · 294 阅读 · 0 评论 -
spring cloud 到 dubbo
1,切换注册中心,从eurake 到 nacos原创 2021-10-26 10:40:30 · 260 阅读 · 0 评论 -
其他(幂等性)
幂等性 幂等性:多次调用方法或者接口不会改变业务状态,可以保证重复调用的结果和单次调用的结果一致。 什么情况下需要幂等 SELECT col1 FROM tab1 WHER col2=2,无论执行多少次都不会改变状态,是天然的幂等。 UPDATE tab1 SET col1=1 WHERE col2=2,无论执行成功多少次状态都是一致的,因此也是幂等操作。 UPDATE tab1 SET col1=col1+1 WHERE col2=2,每次执行的结果都会发生变化,这种不是幂等的。 insert in原创 2021-09-19 16:07:13 · 197 阅读 · 0 评论 -
常用系统调用
mmap 读写文件,一般有两种方式。 一种是open一个文件,然后使用read系统调用读取文件的一部分或全部。这个read过程是这样的:内核将文件中的数据从磁盘区域读取到内核页高速缓冲区,再从内核的高速缓冲区读取到用户进程的地址空间。这里就涉及到了数据的两次拷贝:磁盘->内核,内核->用户态。 而且当存在多个进程同时读取同一个文件时,每一个进程中的地址空间都会保存一份副本,这样肯定不是最优方式的,造成了物理内存的浪费。看下图: 共享存储映射mmap open一个文件,然后调用mma原创 2021-09-19 15:26:30 · 1604 阅读 · 0 评论 -
NIO note
FileOutputStream vsBufferedxxxStream/ByteArrayxxxStream FileOutputStream 每次都向内核调一次syscall和write(byte[]),将二进制流写入操作系统内核的page cache。不提供flush(),只有close。 BufferedxxxStream,buffer缓存区是jvm层面的东西,默认开辟了8kb的数组。每次write先写入缓存区,等这8kb写满了才调用一次内核syscall和write(byte[]),将二进制.原创 2021-09-19 11:09:34 · 158 阅读 · 0 评论 -
容器note
hashMap 计算数组下标 在1.8中, tab[i = (n - 1) & hash] 和e.hash & (newCap - 1) 都是计算节点在数组中的下标。 在1.7中是用 indexFor(int h, int length)。 /** * Returns index for hash code h. */ static int indexFor(int h, int length) { // assert Inte...原创 2021-09-02 10:31:13 · 123 阅读 · 0 评论 -
高可用,高性能,一致性
高可用,单点故障 高性能,水平扩展,分区,分片,分表, 一致性,包括数据不一致,数据丢失。主从复制采用异步复制,会导致不一致。分区原创 2021-08-30 15:51:27 · 424 阅读 · 0 评论 -
jvm调优和诊断
JVM调优:目标是减少full GC,减少STW JVM诊断:排除各种问题 1)栈(线程)诊断 2)堆诊断 调优: 年轻代太小(老年代过大),会导致对象未达到年龄15就进入老年代,增加full GC的次数,且老年代过大每次full GC的stw过长。 年轻代过大,老年代过小,导致老年代频繁full gc。 注:年轻对象进入老年代的条件:(动态对象年龄判定:为了能更好地适应不同程度的内存状况,虚拟机并不是永远地要求对象的年龄必须达到了MaxTenuringThreshold才能晋升到⽼年代..原创 2021-08-21 14:02:47 · 207 阅读 · 0 评论 -
jvm 性能调优
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 jvm性能调优 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学原创 2020-06-05 01:08:12 · 328 阅读 · 0 评论 -
ConcurrentHashMap的原理
以JDK1.8为例: 在JDK8中进行了巨大改动,它摒弃了Segment(锁段)的概念,它沿用了与它同时期的HashMap版本的思想,底层由Node数组+链表+红黑树的方式思想,为了线程安全,采用了Synchronized和CAS乐观锁机制。在CAS算法中,会比较内存中的值与你指定的这个值是否相等,如果相等才接受你的修改,否则拒绝你的修改,因此当前线程中的值并不是最新的值。进行加锁操作,也就是存...原创 2019-02-28 19:31:12 · 156 阅读 · 0 评论