- 博客(67)
- 收藏
- 关注
原创 Semaphore的注意点
seamphore大家玩的都比较多,使用起来也很简单,获取令牌和释放,但是其中坑却不少,而且会让人很难发现,希望能通俗易懂的小例子讲明白其中的几个道理。一、线程都被阻塞了?public class demo2 { static Semaphore semaphore = new Semaphore(1); public static void method1() { try { System.out.println(Thread.curr..
2022-05-29 22:12:28
383
原创 ES-Index Aliases
前言:最近公司需要解决es下单个索引过大(大概几亿-十几个亿的数据)导致查询过慢的问题,解决方法是按天创建索引,挂载到别名之下,再去根据具体业务需求定时删除或者卸载相关索引(30天)一、什么是Aliases个人理解为别名,可以使几个索引使用一个别名,这样查找的时候相当于分表查找再聚合的效果二、如何操作1.主要演示记录一下该如何挂载别名以及注意点2.这里准备的将test_auto_index_20200405和test_auto_index_20200404 挂在再别名test_aut..
2022-04-05 20:41:37
947
原创 MySQL-08-MVCC
一、什么是MVCC即多版本并发控制MVCC在MySQL的InnoDB中的实现主要是为了提高数据库并发性能,达到读-写不冲突,此处的读是快照读二、什么是当前读和快照读?快照读就是最普通的Select语句,例如:select * from user whereid=1,他读取的是一个快照,也就是历史记录,不一定是最新的数据,取决于你能读到什么(涉及隔离级别)当前读指执行下列语句时的读取的方式,可以理解为读到了最新的数据,会去加锁Insert、Update、Delete、Select…for
2022-03-18 16:48:40
944
原创 记一次死锁排查
1.死锁代码public class DieLockTest { private static String lockA = "lockA"; private static String lockB = "lockB"; public static void main(String[] args) { Runnable runnable1 = () -> { synchronized (lockA) {
2022-03-16 21:43:22
470
原创 MySQL-07-事务
MySQL事务介绍一、事务的基本要素(ACID)1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。3、隔离性(Isolation):不同的事务之间彼此没有任何干扰。比如A正在从一张银行卡中取钱,在A取钱的过程结束前,B不能向这张卡转账。4、
2021-11-07 15:45:51
398
原创 MySQL-06-RedoLog
InnoDB架构架构图上图详细显示了InnoDB存储引擎的体系架构,从图可见,InnoDB存储引擎由内存池,后台线程和磁盘文件三大部分组成。InnoDB内存结构BufferPool(缓冲池)InnoDB采用缓存机制来实现提升处理数据的效率,Buffer Pool就是执行缓存区域;Buffer Pool中包含data page数据页、index page索引页、insert buffer page插入缓冲页、adaptive hash index自适应哈希(热点哈希)、lock info锁信
2021-10-18 13:25:03
104
原创 MySQL-03-索引
索引介绍官方介绍索引是帮助MySQL高效获取数据的数据结构优势:检索:可以提高数据检索的效率,降低数据库的IO成本;排序:被索引的列会自动进行排序,包括【单列索引】和【组合索引】,只是组合索引的排序要复杂一些,如果按照索引列的顺序进行排序,对应order by语句来说,效率就会提高很多;where 索引列在存储引擎层被处理,达到索引下推效果;劣势: 占据磁盘空间; 索引虽然会提高查询效率,但是会降低更新表的效率;比如每次对表进行增删改操作,MySQL不仅要保存数据,还有保存或者更新对应的索引文
2021-09-05 14:44:59
92
原创 MySQL-01-基础知识
表关联查询的理解一、外联接1)左连接(左外联接)LEFT JOIN或LEFT OUTER JOIN显示左表的所有行,如果左表的某行在右表中没有匹配行,则右表列为空值。2)右连接(右外联接)RIGHT JOIN 或 RIGHT OUTER JOIN显示右表的所有行,如果右表的某行在左表中没有匹配行,则左表列为空值。3)FULL JOIN 或 FULL OUTER JOIN完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间
2021-09-05 12:44:01
82
原创 SpringBoot - Log4j2异步日志
前言Log4j2大家应该都不陌生,最近在研究日志框架的时候,发现其存在异步日志场景且性能很高,于是开始尝试,并记录踩坑点环境springboot 2.4.5java 8配置1.引入其依赖并把 springboot 自带的日志框架 logback 排除掉:<!--log4j2--> <dependency> <groupId>org.springframework.boot</groupId>
2021-09-01 17:16:33
574
原创 RabbitMQ-Queue
主要讨论队列声明的各个参数(本文基于SpringBoot集成)1.通过RabbitMQ-Manager界面添加queue设置参数2.通过Bena注入添加queue设置参数@Configurationpublic class RabbitmqConfig { @Bean public Queue queueWork_test() { return new Queue("queue_work_test", true, false, false, null); }
2021-08-09 15:21:12
997
原创 Java并发容器总结
对于map/set的选择使用无并发下HashMap: 无序的key-value (hash表)TreeMap: key是有序的,按照自然排序,或者通过函数指定顺序(红黑树)LinkedHashMap:内部有一个链表,保持Key插入的顺序 (链表,hash)并发较小HashTable :对hashMap所有方法进行同步处理Collections.synchronizedXXX : 对集...
2020-03-01 20:42:11
101
原创 MySQL-02-MySQL架构
表关联查询的理解一、外联接1)左连接(左外联接)LEFT JOIN或LEFT OUTER JOIN显示左表的所有行,如果左表的某行在右表中没有匹配行,则右表列为空值。2)右连接(右外联接)RIGHT JOIN 或 RIGHT OUTER JOIN显示右表的所有行,如果右表的某行在左表中没有匹配行,则左表列为空值。3)FULL JOIN 或 FULL OUTER JOIN...
2020-02-01 14:19:22
185
原创 深入理解Java虚拟机(二)
1.程序计数器(线程私有)注意点:1.此处没有内存溢出异常(可以这样理解,因为我们操作不了程序计数器,而是由jvm调用,所以会很严谨,不会出现内存溢出的异常)2.java虚拟机栈(线程私有)3.本地方法栈(线程私有)注意点:1.二者结构模型很类似,所以本地方法栈和虚拟机栈在hotSpot中融为一体了4.Java堆(线程共享)...
2020-01-15 22:22:22
148
原创 关于日志打印的几点建议
日志的打印在软件开发过程中必不可少,一般分为两个大类:操作日志:主要针对的是用户,例如在Photoshop软件中会记录自己操作的步骤,便于用户自己查看。系统日志:主要针对的是软件开发人员(包括测试、维护人员),也就是说这部分的日志用户是看不到的,也就是我们通常所说的debug日志。操作日志相对比较好理解,用户做了什么就记录什么;而打印系统日志则很多人无从下手,往往一般有下面几个方面:Whe...
2020-01-13 14:50:25
697
原创 Docker Nginx 安装
docker 下到nginx 安装docker pull nginx: 下载nginx镜像docker run -di --name zmj_nginx -p 9080:80 nginx /bin/bash:以后台方式启动,容器名为zmj_nginx,映射9080端口到容器内部的80端口 运行到镜像名为nginx这时候nginx虽然启动,但是浏览器无法访问,因为容器内部nginx没有启动...
2020-01-11 14:35:18
87
原创 详解IaaS,PaaS,SaaS三者关联区别
IaaS: 基础设施即服务 (阿里云服务器,腾讯云服务器)PaaS:平台即服务 (mysql ,redis …) Docker 就是基于Pass产生的虚拟化容器技术SaaS: 软件即服务 在云上直接可以访问无需本地化部署安装,类似钉钉,云上OA,教务系统(需求变化不大,具有很强的通用性)通俗角度如果你想搭建一个博客网站。不采用云服务,你所需要准备的大概是:买服务器,安装服务器软件,编写...
2020-01-08 13:38:04
2482
原创 insertselective返回主键ID
使用Generator生成的方法insertselective,发现返回的为影响条数,0为失败,1为一条数据收到影响也就是成功,实体类属性id里面也没有主键映射上。加上下面红线位置的即可useGeneratedKeys=“true”keyProperty="pojo主键字段"去实体类中即可拿到主键id...
2019-12-17 14:09:59
11273
原创 计算机网络基础知识,持续更新
局域网:覆盖范围小,带宽固定,自己维护广域网:花钱买带宽,别人维护带宽:带宽电信8m,只是你访问电信的服务器8m,其他的运营商不一定,所以存在有的网站快,有的网站慢网络部分:同一个局域网是相同的子网掩码:用来表示网络部分哪里是主机网关:就是下一个地址应该给谁mac地址:是计算机芯片里面的,出厂设置的计算机数据通信过程如下图1.DNS域名解析,拿到域名对应的网络地址2.包装一个原...
2019-12-10 22:38:37
109
原创 Docker build 异常
主要报错为:com.spotify.docker.client.shaded.org.apache.http.impl.execchain.RetryExec executeINFO: I/O exception (java.io.IOException) caught when processing request to {}->unix://localhost:80: Connect...
2019-12-05 16:14:25
2735
原创 Docker Linux 安装操作
我的linux系统是阿里云服务器,是centos版本的。前置条件64-bit 系统内核 3.10+1.用 uname -r 命令检查内核版本,返回的值大于3.10即可2. sudo yum install docker 用yum下载docker中途出现提示代表需要的安装包大小,输入y同意即可3.启动dokersudo systemctl start docker : 启动dock...
2019-12-05 09:34:41
73
1
原创 The specified user settings file does not exist: /Users/zmj/.m2/settings.xml
今天写代码时候,突然之间maven 报错,我是使用idea自带的maven打开设置,发现目录/Users/zmj/.m2/下没有找到maven的settings文件,发现自己不小心勾选了使用本地maven的settings文件,但是自己没有安装maven,所以找不到,去掉Override继续使用的就是idea自带的maven即可(有人说很坑,我感觉懂了的话还可以使用的)使用Idea自带的ma...
2019-12-04 13:15:31
13674
2
原创 AuditLog配置详解
介绍auditLog采用Audit4j进行了简单的封装。配置在applicaton-.yml中添加auditLog的配置,配置参数如下:# auditLog配置audit4j: db-handler: # auditLog记录时否分表. 对于业务不是很复杂的应用,一般设置成false即可 separate: false # 是否用内置的数据库记录.一般都是用自...
2019-12-03 18:03:25
9134
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人