-
JAVA编程-ConcurrentHashMap
实现差异jdk1.7 数组 + 数组 + 链表实现 (数组 + HashMap) final Segment[] segments; 会初始化Segment[],不初始化HashEntry[] jdk1.8 数组 + 链表实现 (HashMap) volatile Node[] table; 不初始化Node[] java1.7的ConcurrentHashMap细节 (数组 + HashMap实现)1.内部关键字段final Segme...…
-
容器服务-kubernetes
官方中文文档https://www.kubernetes.org.cn/k8s内网环境:web0-web9内网部署: Jenkins线上部署: Jenkins日常维护: 阿里云控制台服务器登陆:阿里云控制台概念应用关键词: RDS,ECS, namespace, Nacos容器服务关键词: namespace, VPC, K8S, POD, NAT网关,SLB,安全组,kubectl ,Worker,宿主机, 交换机阿里云控制台:1.部署2.日志3.ECS登陆4.服务观测5.无感上线6.包...…
-
数据库-存储引擎
HyperSQL存储引擎 (java写的)文档 http://hsqldb.org/doc/2.0/guideMYSQL-8.0的所有存储引擎(c/c++写的)1.NDB Cluster存储引擎 网络数据库集群 mysql-7.2后的存储引擎,8.0后正式版“NDB” 全称为 “Network Database”.NDB Cluster是集群内存数据库技术NDB Cluster最初仅以内存形式实现,但当前所有可用版也提供了磁盘存储NDB Cluster被设计为没有任何单点故障 它...…
-
数据库-事物
注意: 事物是一个很大的话题, 在沟通的时候, 可以先说明事物范围, 以免造成沟通不畅事物分为 1.微服务事物 2.数据库事物前提 ACID原则 原子性(Atomicity) commit指令, rollback指令 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 一致性(Consistency) 强一致,最终一致 事务前后数据的完整性必须保持一致。 隔离性(Isolation) ...…
-
JAVA编程-高性能IO操作方式
IO高性能优化框架 提前读,预读 (减少读数据的时间) 延迟写(减少磁盘的次数) 优化物理块的分布,分片(减少磁臂移动距离) 临时文件(文件缓存,顺序读写减少磁臂移动距离) 内存映射(逻辑上属于磁盘, 物理上在内存中) 高性能IO操作方式 FileChannel使用的ByteBuffer一定要以4k的倍数操作 写入一定要加锁,不然并发时数据一定会错乱 保持顺序读或写操作(如果不能保持,...…
-
数据库-MYSQL文档
mysql官方文档-首页Mysql原版文档 https://dev.mysql.com/docMysql中文文档 https://www.docs4dev.com/docs/zh/mysql/5.7/reference/manual-info.html数据结构可视化 https://www.cs.usfca.edu/~galles/visualization/Algorithms.htmlmysql官方文档-握手包https://dev.mysql.com/doc/internals/en...…
-
linux-系统调用表sys_call
IBM的文档-系统调用表中文https://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/appendix.htmllinux内核代码 (x86指令集,64位CPU)https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/ia64/kernellinux系统调用表声明代码 基于x86指令集的64位 (因为x64兼容x86, 所...…
-
linux-IO调度器scheduler
1.IO调度器 (IO Scheduler) 每个块设备或者块设备的分区,都对应有自身的请求队列(request_queue), 而每个请求队列都可以选择一个I/O调度器来协调所递交的request。 I/O调度器的基本目的是将请求按照它们对应在块设备上的扇区号进行排列,以减少磁头的移动,提高效率。 每个设备的请求队列里的请求将按顺序被响应。 实际上,除了这个队列,每个调度器自身都维护有不同数量的队列, 用来对递交上来的request进行处理,而排在队列最前面的request将...…
-
操作系统-内存管理
点击预览嵌入式内存管理.pdf1.内存堆初始化 HeapInit.c /* 内存堆初始化 1、宏定义 #if portBYTE_ALIGNMENT == 8 对齐字节数 #define portBYTE_ALIGNMENT_MASK ( 0x0007 ) 对齐掩码 #endif 2、内存块链表节点长度 这里保证可被8整除,内存操作效率高 static const size_t xHeapStruct...…
-
数据库-OLTP型数据库
OLTP(OnLine Transaction Processing,在线事务处理)OLTP是面向交易事物数据库的统称 (常见于业务系统) 业务类系统主要供基层人员使用,进行一线业务操作. OLTP负责基本业务的正常运转 (每天简单重复的短事物), OLTP常见的数据库有:支持SQL的 (都支持分布式)阿里云 DRDS(分布式数据库)https://www.aliyun.com/product/drds华为 gaussdb(AI-分布式数据库)https://e....…
-
数据库-OLAP型数据库
OLAP(OnLine Analytical Processing,在线分析处理)OLAP是面向分析查询数据库的统称 (多异构数据源,周期性的长事物,比如每天跑一次数据) OLAP目标是全局多维度数据查询,探索数据的规律并挖掘数据价值,作为企业高层进行决策的参考, 数据分析的体系建设往往是在初次进行信息化建设后某个时间开始. OLAP不应该对OLTP产生任何影响,(理想情况下)OLTP应该完全感觉不到OLAP的存在。 OLAP的准则和特性E.F.Co...…
-
JVM-记一次线上应用无法访问(GC时间过长)
1.线上普罗米修斯频繁报警有一台IP是247的机器,服务无法访问. 2.报错信息是redis超时2秒,导致获取当前登录用户信息失败(这是公共方法)。发现报错时间与gc日志时间吻合,但它是CMS的并发预清理阶段(concurrent-abortable-preclean),应该不会停顿才对,只有init-remark和final-remark才会停顿。奇怪,难道cpu的时间被抢走了?3.调查近期上线的代码刚上了一个在线生成简历并预览的功能。因为生成时间慢,所以我把编译模板基于生产消费者模式提...…
-
JVM-常用工具
(点我下载日志) 2020_05_18_1410.logOracle官网(垃圾收集器)https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/index.htmlJVM可视化看盘 (直接CMD输入名字就行, 例如输入:jconsole, 这些工具是在 jdk/bin目录下)1. jconsole (一般)2. jvisualvm (好用)3. jmc (花哨,不过能看到的信息真的很全)查询java的GC信息jst...…
-
linux-Shell脚本
蓝绿发布Shell脚本(需要nginx-lua的接口支持)awaitjava (){ echo "begin waiting java, localhost:$1 start.. " time=0 while(true); do res=$(curl "localhost:$1") if [[ "$res" != "" ]]; then echo "res: $res" break; ...…
-
数据库-shardingsphere
shardingsphere张亮直播的截图 (这次直播目的主要是为了宣传一下社区)下面是图片…
-
数据库-MYSQL表优化的操作
Mysql原版文档 https://dev.mysql.com/docMysql中文文档 https://www.docs4dev.com/docs/zh/mysql/5.7/reference/manual-info.html数据结构可视化 https://www.cs.usfca.edu/~galles/visualization/Algorithms.html参数优化服务端set global query_cache_type=OFF;// 关闭查询缓存, 作用不大, 8以后默认就是...…
-
JAVA编程-多线程协调工具_ReentrantLock
1.来历大多数情况下,不仅不存在多线程竞争,还存在锁由同一线程多次获得的情况,synchronized关键字的偏向锁与ReentrantLock就是在这种情况下出现的在1.6前, synchronized关键字是用是用系统调用实现的(例如:pthread_mutex_t). 获取锁动作与释放锁动作.在1.5出现了JUC库, 例如ReentrantLock. JDK版本 锁实现 获取锁动作 释放锁动作 1....…
-
JAVA编程-多线程协调工具_Phaser
目录1.Phaser是一个更强大的、更复杂的同步辅助类2.内部维护的数据3.phaser使用方法4.继承phaser5.状态说明:只要不是终止状态下,就可以动态的把线程注册到phaser中。1.Phaser是一个更强大的、更复杂的同步辅助类,可以代替CyclicBarrier CountDownLatch的功能,但是比他们更强大。 Phaser类机制是在每一步结束的位置对线程进行同步,当所有的线程都完成了这一步,才能进行下一步。当我们有并发任务并且需要分解成几步执行的时候,...…
-
搜索引擎-IKAnalyzer
目录1.引言2.IK-Analyzer是什么? (IK是分词器)3.分词的原理4.分词的逻辑5.附1 : 官方文档6.附2 : 项目中使用的字典1.引言全文搜索是一场 查准率 与 查全率 之间的较量 (引用百度百科: 两者关系为互逆的关系 )查准率即尽量返回较少的无关文档,而查全率则尽量返回较多的相关文档。尽管能够精准匹配用户查询的单词,但这仍然不够,我们会错过很多被用户认为是相关的文档。 因此,我们需要把网撒得更广一些,去搜索那些和原文不是完全匹配但却相关的单词。难道你不期待在搜索“...…
-
技术管理-1_4_1_服务端开发规范
1. 1. 本规范分为三个章节 介绍 第一章 – 数据库规范 第二章 – JAVA代码书写规范 第三章 - SQL语句规范1. 2. 语言 本文中用到的关键字 必须=强制。不能=强制。要求=强制,如果有特殊情况,需要商讨后决定是否可以解除此次强制。应该=不强制,但如果不遵守,可能会出现意外情况。不应该=不强制,但如果不遵守,可能会出现意外情况。推荐=不强制,根据经验总结出的相对较好的方案, 可以不遵守。可以=不强制,明确指定允许做的事情。可选=不强制,任选其一,可以都不选择。第一...…