自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 liunx mysql 主从同步设置 关键点

MySQL 主从同步 关键闭坑要点

2023-04-09 01:49:49 398 1

原创 开机自动同步生产数据到本地

开机要同步生产到本地window,网上看了很多方法,可是不知道我的navicat版本不一样还是啥的,都不行,接下来搞个相对可行的首先你要新建有两个数据库,点击工具,再点数据传输就会弹出个下面的框成功后窗口输出日志。。。。。[Msg] [Dtf] Finished - Successfully比如我们输入文件名为copy,然后我们去找到这个文件,在计算机中搜索 profiles 文件夹,可能会搜索出很多,从搜索结果中找到带有...

2020-11-13 09:59:38 186

原创 如何将pdf转化成word

很多人都有这个需求,但是经常是找半天也没找到一个免费的可以转化了,这里我要教大家一个大招,让我们可以免费转换一般来说 网上的pdf转换器只允许你转换前一页,我们可以先将PDF拆成多个pdf在线免费拆的地址http://www.pdfdo.com/pdf-split.aspx拆完了就可以通过随便一个pdf 转换器一次一页的转换成word转换好了 通过http://www.docpe.com/word/combine-word.aspx这个地址将多个word合并 就行了..

2020-08-21 16:47:15 301

原创 liunx yum方式安装的MySQL 坑我已经帮你们踩过了

相信很多新人在liunx 上 安装MySQL 郁闷到想放弃,各种不行,各种坑,我总结了可行的最靠谱的安装方式先将MySQL 卸载 直接cd / 到根目录下操作yum方式安装的MySQL卸载查看安装了MySQL没有#yum list installed mysql*如果出来一堆mysql 版本名字移除他们yum remove + 【名字】比如yum -y remove mysql-libs.x86_64接下来删除MySQL的安装目录和配置文件,yum 安装方式就是安装到下面

2020-08-15 23:21:14 695

原创 java读取加密的外置execl

比如需要在springboot install 出来的jar包 旁边放一个excel.xlsx,而且这个文件还是要加密的,为 了不让客户看见核心配置和修改第一次没经验弄了一整天才搞出来,网上一大堆方法,没一个可行的,坑爹,我日,特此写此文留给自己以后看需要用到的maven 依赖如下 <dependency> <groupId>org.apache.poi</groupId> <artifactId&g...

2020-07-26 22:09:21 173

原创 将springboot 打包成不需要依赖Java环境就可以运行的独立应用程序

Java 程序是需要依赖jdk环境的,但是很多时候我们需要在做成不需要任何Java环境的情况下运行,怎么做的,废话不多说,直接操作。这是我最近做的一个个人项目,和公司无关。首先你需要安装一个 exe4j 软件。百度随便下一个就行。首先你先用开发工具将springboot工程打成jar,这个开发人员都知道 maven install 就行。next接下...

2020-07-25 14:14:20 3949 2

原创 如何让filter执行完自定义的filter后不再执行其他fitler,就直接访问后台接口呢

方法1@Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest reque...

2019-10-29 20:38:46 1373

原创 传统工程项目依赖 Tomcat无法加载解决方法

传统老工程很多不是用maven构建的,很多需要手动打成jar后丢到对应的lib文件下还要add to build path 才能引进,这样非常麻烦,这个被引用的jar可能还需要不断的修改,这里介绍一种项目依赖的方法,点项目,点右边add添加项目,选择你需要依赖的项目,添加即可入下图,然后这样还不行,因为我们用Tomcat启动,还需要告tomcat 去按找这些项目的jar包接下来...

2019-10-28 20:58:15 504

原创 如何让一次http请求多次响应呢

其实http请求也是tcp长连接,只不过一般情况下我们返回一次后框架会自动关闭连接,接下来看这个例子。@GetMapping("get") public void test(HttpServletResponse response) throws IOException, InterruptedException { response.setChar...

2019-10-25 21:27:18 10609 5

原创 reidis 实现分布式定时任务

定时任务1{旧值=redis.getset("key",新值)if(旧值!=程序员写死的值)return;---执行其他业务业务逻辑}定时任务2 定时任务1执行一段时间后执行定时任务2{redis.set("key",程序员写死的值)}...

2019-10-16 20:10:54 175

原创 CAS在多线程方面的妙用

今天来教大家如何灵活使用CAS ,以AtomicInteger为例子,凡是以CAS思想实现的工具类,都具有compareAndSet(旧值, 新值),在多线程中,我们无法知道到底哪个线程会先执行,有的时候我们需要让线程按顺序执行,比如常见的面试题 给你三个线程,输出10个ABC这样的字符串ABCABCABCABCABCABCABCABCABCABC要做到这点,需要线程在关键位置是串行...

2019-10-12 19:35:10 279

原创 volatile 对于基本类型的包装类可见性失效

我发现volatile 对于基本类型的包装类不可见,当线程A修改了变量,如果线程B去获取这个变量的值,线程A无法看见线程B的修改,如果改成其他数据类型的数据,则没有问题。这有点奇怪。接下来来个简单例子测试一下。public class VolatileTestA extends Thread{ private volatile Integer i; pu...

2019-10-12 18:55:56 482

原创 批处理 遍历拷贝 随手记

将当前目录下和子目录下的所有MP4 全部移动到F:\new文件夹中@echo offfor /R %%f in (*.mp4) do ( echo %%f move %%f F:\new)pause如果是复制 ,改成copy 就可以了...

2019-10-11 21:27:46 411

原创 spring事务传播原理

spring事务很多人都知道是基于aop 切面实现的,在目标方法执行前try{connection.setAutoCommit(false);@Transactional目标方法A{--》方法B{}}connection.setAutoCommit(true);}catch(){connection.rollback();}finally{connect...

2019-09-30 20:57:34 263

原创 夸域单点登录解决方案

这里采用独立验证中心的方式实现,只要认证中心登录,就认为其他系统都登录。登录页面在验证中心,采用一账通登录方式。其他系统不再需要单独的登录页面。接下来把流程图贴上接着用户又访问域名B下的系统,其流程和上面一模一样,B发现session和请求头都不含有token,会重定向到验证中心去登录,因为刚才浏览器访问站点A的时候已经登录过一次,这个时候回话没有过期,验证中心发现ses...

2019-09-26 20:00:17 281

原创 synchronized并不比lock慢

来做个测试,先建立一个lock测试类,同时启动多条线程启动完毕后同时争抢修改共享变量import java.util.concurrent.CyclicBarrier;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.locks.Lock;public class LockTest e...

2019-09-23 19:42:39 363

原创 信号量Semaphore 工作原理

限流器:让一组线程只能同时让固定数量的线程同时执行。各种同步器其实都是基于AQS实现的。其中最重要的是 state 和里面的同步等待队列,说明就是一个链表Semaphore semp = new Semaphore(5); 也可以声明为公平的同步构造器public Semaphore(int permits, boolean fair) { sync = fai...

2019-09-07 16:20:05 447

原创 计时器CountDownLatch 原理

CountDownLatch 每次声明一个state 为一个固定数值,然后每个线程调用countDown()就会对state 减一,当state 为O后将会唤醒等待队列里面的线程。从而实现等待功能。CountDownLatch countDownLatch = new CountDownLatch(5); public CountDownLatch(int count) ...

2019-09-07 14:14:29 187

原创 Mysql分组统计可以查询select *

题目大概是 按照某列分组后 ,对另外一列求和 ,找出那个 求和最大的那一组。面试官说我 分组 查询不能使用 表名.* 查询,就是除了name 外,不能查询其他字段,我说MySQL可以,面试官根本不信,直接鄙视我,认为不行,后来他直接说,不管orcale 还是mysql都不行,以后再遇到这样的面试官,一定和他打赌,200块钱,先留下这里截图证据,我日,一肚子火...

2019-09-06 13:12:20 503

原创 服务器 CPU 100% 问题排查

服务器CPU 过高问题排查步骤先通过 top 命令查看排名靠前的进程 拿到其PIDtop -H -p PID 查看实时的线程 cpu占用率 ,找出那些排名靠前的线程号使用printf "%x\n" 线程号将异常线程号转化为16进制使用jstack查看进程的日志 jstack -l 线程号使用jstack 进程号|grep 16进制异常线程号 -A90来定位异常代码的位置...

2019-09-05 02:00:53 854

原创 循环栅栏CyclicBarrier 原理

用法我就不说了,百度一大堆,我在这里带大家看看源码了解其原理:CyclicBarrier barrier = new CyclicBarrier(3);public CyclicBarrier(int parties) { this(parties, null); }public CyclicBarrier(int parties, Runnable ba...

2019-09-04 23:43:12 205

原创 Elasticsearch分词器 下term无法命中

其中某个字段(比如本例子中user字段)使用了analyzed分词功能,并且该字段为中文的时候,那么使用term时,很大概率将无法匹配,使用match又会得到太多的结果,这个时候,我们可以使用match_phrase来达到目的待查询字段内容为 为中文http://localhost:9200/myindex/test/_search/{"query":{"match_phrase":{...

2019-09-04 12:28:31 935

原创 分布式事务TCC具体方案和RocketMQ机制

分布式事务TCC实现思路A{B{远程方法} 成功 c{本地方法} 失败, 如何回滚远程方法B的操作}这里涉及到两个系统的事务,我们来用Redis 设计一套TCC回滚方案。@自定义分布式事务注解(ID=null)@TransactionalA{ 创建唯一标识也好,假设20190503 ,并动态修改注解内的值ID= 2...

2019-08-24 14:45:29 447

原创 ReentrantLock原理

先来简单通俗的描述一下 ReentrantLock 和 ReentrantReadWriteLock 其实原理非常类似,都是通过判断 ReentrantLock 里面 有个state , ReentrantReadWriteLock 可以看成有两个 state ,一个是read_state ,一个是write_state 这些东西都是通过这...

2019-08-22 00:35:20 189

原创 组合索引索引的那点事

面试官经常问我们,有个ABC的复合索引,我们都知道查A AB ABC 才走索引,其他不走索引,其实这个说法不完全对,而是ABC任意组合都会用到索引,只不过其他的组合使用的是扫描整个索引,扫描整个索引也比扫描整个表好。效率没那么高而已。我们来建立一个一个复合索引(name,age),按照网上的说法只查询age不走索引,我们来看下执行计划书是不是这样我的表里有两条数据,这...

2019-08-08 00:54:41 273 1

原创 分库分表亲自实践

今天我要来分享我们项目中用到的分表策略:用Redis 双主从集群产生连续自增ID(后文会详细介绍),先根据ID的大范围来确定组,每组里面有若干个数据库,通过对数据库的数量继续取余数,来确定在那个数据库,每个数据库又有若干个表,根据小范围来确定表。假设目前有一个ID=5千万, 通过group 表知道这个数据应该落在组2中,通过第二张表我们知道组2中一共有三个数据库,让后计算5千万%3=2,这条数...

2019-08-03 22:10:39 361

原创 线程池参数

我把线程池参数给做个形象的比喻,线程池 就好比一个水池,池底有N个小洞,就是核心线程数量N,最大线程数量就是这个池子能装多少个桌球,等待队列 就是池子之外的一块地方,有的队列是有界的,就是大小固定,有的是无界的,大小不固定。任务 就是把桌球丢到池子中,让桌球从池底的小洞掉下去。相当于线程的执行。当前线程小于核心线程N的时候,则直接创建线程,否则就进入等待队列中等待,如果队列的大小是不...

2019-07-29 23:13:19 166

原创 Java异常精确定位和责任人

本文将告诉你一个让测试和开发 知道一个异常出现的时候,导致这个异常出现的原因是谁写的啥方法,入参是什么,达到不扯皮,精确定位的目的,但是如何知道是谁写的呢,我们需要自定义一个注解。import static java.lang.annotation.RetentionPolicy.RUNTIME;import java.lang.annotation.Documented;import ...

2019-07-26 20:59:22 408

原创 MySQL高效分页-mybatis插件PageHelper改进

MySQL分页在表比较大的时候,分页就会出现性能问题,MySQL的分页逻辑如下:比如select * from user limit 100000,10它是先执行select * from user 扫描满足这个SQL语句,拿到执行结果后, 一页一页的找到行号为100000的行,返回接下来的10行数据,出现性能问题的原因有两个,1:它先全表扫描了,整个表,而不是扫描到了满足条件的数据就不扫描了,比...

2018-05-27 20:45:39 16785 10

原创 深入理解Java的堆内存和线程内存

我们都知道Java对象都是在堆中创建的(开启逃逸分析的情况除外),我们也知道比如一个线程中有一段这样的代码:public class A{ public int xxx;}A a = new A();会在堆中创建一个对象,并引用a 指向了堆中对象的内存地址,也就是主内存中。也就是说线程中的引用指向了主内存中的对象地址,很多Java程序员甚至以为因为持有引用,所以对这个引用的赋值或者读取都是...

2018-01-05 21:47:48 6502

原创 多线程安全和高效之无锁机制(CAS)和unsafe类

unsafe类给我们提供了很多很牛逼方法,他的操作都是原子性的,用来获取内存地址处的值并修修改,它的修改逻辑是对比内存里地址处的值是否和预期值一样(没有多线程修并发修改的情况下是一样的),如果不一样,说明该值被修改了,返回false,否则返回true,它是Java版本的乐观锁。Java中很多地方都会用到这个方法。如果别人问你ABA的问题,你就告诉他,Java CAS算法不认为ABA是个问题。...

2017-11-02 13:06:42 2304

原创 spring事务隔离级别和数据库的隔离级别有什么不同,MVCC机制的坑

spring事务隔离级别是什么,数据库隔离级别是什么,它们有什么关系。我来帮大家理一理。其实非常简单,spring发送SQL请求和我们用的Navicat 写 set session transaction isolation level 具体级别start transaction是一样的,实际上就是spring 使用了 MySQL提供的标准接口,说白了就是告诉MySQL 使用什...

2017-09-29 00:06:54 4708 3

原创 springboot 高版本后继续使用log4j的解决方法

springboot  高版本后不支持log4j了,很多人还是喜欢log4j风格的日志,我们自己来加载log4j,其实很容易。第一步:我们手动加入我们想要的log4j jar,在项目里面随便建一个文件夹,将用到的jar丢进去,右键 add to build path第二步:在main函数启动类所在的包或者其子包下写一个这样的类,用来加载log4j配置文件

2017-09-24 22:53:31 5052 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除