自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(147)
  • 资源 (4)

原创 IntelliJ IDEA 自定义模板,修改模板

File---Settings---Editor --- File and Code Templates---includes---File header类:/** * @title: * @description: * @author lanxuqiang * @date ${DATE}${TIME} * @Version 1.0 */File---Settings ---Editor --- Live Templates---自定义 temp

2020-10-16 11:49:14 3

原创 SpringBoot2—初始化参数顺序

spring初始化参数顺序为:构造器-->自动注入-->PostConstrut-->InitializingBean-->init方法-->CommandLineRunner接口方法在容器初始化过程中便会按照如下的顺序执行初始化对象的操作。初始化——构造方法!初始化——@PostConstruct方法初始化——InitializingBean接口初始化——init方法!---容器启动完毕后...容器启动—CommandLineR...

2020-10-15 16:03:36 1

原创 maven私服更新jar包失败解决方法

pom 文件添加以下依赖<!--指定更新代码的仓库地址><repositories> <repository> <id>genzon-public</id> <name>xxx nexus repository</name> <url>http://[ip:port]/repository/maven-public/</url> .

2020-10-13 20:05:57 18

转载 解决Maven修改setting.conf配置添加修改镜像库不生效的问题

文章目录 问题描述 解决步骤 问题描述有时候出现一种奇怪的问题,就是无论如何修改远程库,镜像库的地址,好像都不生效。下面给出排查方法与思路。解决步骤首先检查eclipse或者IDEA中配置的settings文件是否是自己编辑的那个文件。 如果是,那么检查配置的镜像库mirror,看是否有mirrorOf配置的是* ,这个值表示匹配所有的镜像库,相当于会屏蔽掉配置的其他的镜像库。 注意配置的优先级,pom 配置 > settings中.

2020-10-13 19:38:13 27

转载 Springboot自定义Starter

目录一、码前必备知识 二、starter的实现方法 1、新建一个工程 2、pom依赖 3、定义一个实体类映射配置信息 4、定义一个Service 5,定义一个配置类 6、最重要的来了 7、测试 返回目录一、码前必备知识1、SpringBoot starter机制  SpringBoot中的starter是一种非常重要的机制,能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫..

2020-10-12 17:06:22 11

原创 docker运行springboot,并查看运行日志

首先:这里镜像与容器不是一个概念,景象中包含容器。第一步:Dockerfile文件FROM java:8 #拉取镜像VOLUME /tmp #创建文件夹VOLUME /logs #创建文件夹COPY target/test.jar test.jar #将jar包拷贝至docker中RUN bash -c "touch /test.jar" #启动docker的命令WORKDIR /src/app # 指定jar包运行路径RUN mkdi...

2020-09-27 11:52:54 22

原创 使用Docker部署Spring boot项目

第一步.打好的springboot jar包第二步.linux安装好docker这里切记,你的linux环境内核必须是3.1版本以上(用uname -r命令检查内核版本,返回的值大于3.10即可),因为docker是比较新的技术诞生于2013年 兼容性比较不好,,我的3.10勉强够第三步.在linux 创建文件夹(后来要存放jar包与docker的启动文件命令dockerfile)1.这个文件夹只放两个文件,一个jar包,一个Dockerfile2. 上传文件D...

2020-09-25 16:46:35 20

转载 spring boot 防止重复提交

服务器端实现方案:同一客户端在2秒内对同一URL的提交视为重复提交上代码吧pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache..

2020-09-18 11:16:12 49

转载 SpringBoot @Transactional 事务,运行异常进行事务回滚方法

@Transactional public int tests() { Acpgift entity=new Acpgift(); entity.setPgnum(2); entity.setContents("感谢"); acpgiftMapper.insert(entity); try { int i=1/0;//抛出异常 } catch (Exception e) {...

2020-09-15 21:38:47 12

转载 springboot+redis项目实战

1.在springboot项目的pom.xml文件里加入redis的jar依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0..

2020-09-14 14:32:45 21

转载 生产环境CPU占用飙高问题解决

1 问题来源与背景问题背景,项目对外提供查询航班舱位接口,对航信黑屏报文做正则解析返回。由于起初对正则不熟悉,对黑屏报文格式规律不清楚,导致写了大量的长正则表达式,生产环境并发量上来(200/s),直接导致CPU使用率峰值徘徊在100%,运维报警反馈。2 运维报警3 问题定位与解决(1)第一步,用jps查看javapid(2)第二步,显示线程列表 ps -mp 42 -o THREAD,tid,time可以看到CPU占用率很高线程,...

2020-08-17 10:19:58 70

原创 轻松定位CPU飙高问题

①top pid查看cpu耗CPU进程②top -Hp pid查看该进程所有线程的运行情况,找到占用 CPU 过高的线程 pid③printf %x pid打印出 pid 的 16 进制值(jstack 命令结果中的线程 ID 为 nid,且用 16 进制表示)④jstack -l pid grep nid命令查看线程快照,根据上一步得到的 16 进制值找到具体的线程,就能知道这个进程在执行什么代码了...

2020-08-15 12:21:44 31

转载 Redis缓存穿透、缓存雪崩和缓存击穿

Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。另外的一些典型问题就是,缓存穿透、缓存雪崩和缓存击穿。目前,业界也都有比较流行的解决方案。本篇文章,并不是要更加完美的解决这三个问题,也不是要颠覆业界流行的解决方案。而是,从实际代码操作,来演示这三个问题现象。之所以要这么做,是因为,仅仅看这些问题的学术解释,脑袋里很难有一个很形象的

2020-08-14 09:19:52 25

原创 JVM调优

JVM调优工具Jconsole,jProfile,VisualVMJconsole :jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里JProfiler:商业软件,需要付费。功能强大。详细说明参考这里VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。如何调优观察内存释放情况、集合类检查、对象树上面这些调优工具都提供了强大的功能,但是总的来说一般分为以下几类功能堆信息...

2020-08-12 16:41:13 28

原创 最左匹配原则

1.简单说下什么是最左匹配原则顾名思义:最左优先,以最左边的为起点任何连续的索引都能匹配上。同时遇到范围查询(>、<、between、like)就会停止匹配。例如:b = 2 如果建立(a,b)顺序的索引,是匹配不到(a,b)索引的;但是如果查询条件是a = 1 and b = 2或者a=1(又或者是b = 2 and b = 1)就可以,因为优化器会自动调整a,b的顺序。再比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引

2020-08-12 09:49:58 88

原创 Dubbo的一般性问题回答

什么是Dubbo?Duubbo是一个RPC远程调用框架, 分布式服务治理框架什么是Dubbo服务治理?服务与服务之间会有很多个Url、依赖关系、负载均衡、容错、自动注册服务。Dubbo有哪些协议?默认用的dubbo协议、Http、RMI、HessianDubbo整个架构流程分为四大模块生产者、消费者、注册中心、监控中心生产者:提供服务消费者: 调用服务注册中心:注册信息(redis、zk)监控中心:调用次数、关系依赖等。首先生产者将服务注册到注..

2020-08-12 09:21:09 25

转载 Redis 数据同步机制

Redis的主从同步机制可以确保redis的master和slave之间的数据同步。Redis在2.8及以上版本使用psync命令完成主从数据同步。同步方式包括:全量复制和增量复制1. 同步机制 全量复制 全量复制slave第一次启动时,连接Master,发送PSYNC命令,格式为psync {runId} {offset}{runId} 为master的运行id;{offset}为slave自己的复制偏移量 由于此时是slave第一次连接master,slave不知道mas.

2020-08-12 09:05:45 50

转载 事务的隔离级别和传播特性

脏读:当一个事务读取另一个事务未提交的内容,之后由于另一个事务出现了异常回滚了事务,结果造成读取的数据不一致不可重复读:指一个事务多次读取同一数据,而另一个事务多次对数据进行了修改的操作,这样就导致了第一个事务每次读取的数据不一样,幻读:当事务一对整张表的数据进行操作时对其进行了新增行,而另一个事务对其进行了删除行,而这时事务一本身对其进行了新增行然而发现并没有对其新增行而产生了幻觉脏读与不可重复读的区别:脏读是对没有提交的数据进行查询,不可重复读是对已经提交的数据进行的查询不可重复读与幻读

2020-08-11 16:30:31 29 1

转载 Spring 了解Bean的一生(生命周期)

#####为什么说有可能触发Bean实例化阶段?因为当对应某个bean定义的getBean()方法第一次被调用时,不管是显示的还是隐式的,Bean实例化阶段才会被触发,第二次被调用则会直接返回容器缓存的第一次实例化完的对象实例(因为默认是singleton单例,当然,这里的情况prototype类型的bean除外)##该篇博客主要阐述#####1、Bean的一生过程#####2、Bean的后置处理器###一、Bean的一生过程####先来看以下的图(Bean的一生)####可以

2020-08-11 15:06:46 27

转载 分布式事物--本地消息表

本地消息表这种实现方式的思路,其实是源于 ebay,后来通过支付宝等公司的布道,在业内广泛使用。其基本的设计思想是将远程分布式事务拆分成一系列的本地事务。如果不考虑性能及设计优雅,借助关系型数据库中的表即可实现。举个经典的跨行转账的例子来描述。第一步,扣款 1W,通过本地事务保证了凭证消息插入到消息表中。第二步,通知对方银行账户上加 1W 了。那问题来了,如何通知到对方呢?通常采用两种方式:采用时效性高的 MQ,由对方订阅消息并监听,有消息时自动触发事件 采用定时轮询扫描的方.

2020-08-11 10:31:51 58

转载 JAVA面试题——JUC多线程及并发常见问题目录

1、谈谈你对volitile的理解2、CAS你知道吗?3、原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗?4、ArrayList的线程不安全问题。5、各种锁。6、CountDownLatch/CyclicBarrier/Semaphore使用过吗?7、阻塞队列知道吗?8、线程池用过吗?ThreadPoolExecutor谈谈你的理解?9、线程池用过吗?生产上你是如何设置合理参数。10、死锁编码及定位分析11、问题及答案大全...

2020-08-05 09:28:57 101

原创 spring项目静态方法注入数值

通过中间变量赋值import javax.annotation.PostConstruct;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;@Componentpublic class Test { public static String url = "/dev/xx"; @Value("${url...

2020-07-28 14:12:38 46

转载 SpringBoot三种方式实现定时任务

SpringBoot三种方式实现定时任务定时任务实现的三种方式:Timer:这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。ScheduledExecutorService:也jdk自带的一个类;是基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行,也就是说,任务是并发执行,互不影响。Spring Task:Spring3

2020-07-28 09:53:23 46

转载 Java 发送邮件添加日历提醒,添加附件,添加文本

public class Test1 { public static void main(String[] args) { sendMeetingInvitationEmail(); } private static Properties props; private static Session session; public static void sendMeetingInvitationEmail() { try { .

2020-07-14 20:24:49 113

转载 最让你手足无措的一个问题:你的系统如何支撑高并发?

目录(1)一道面试题的背景引入(2)先考虑一个最简单的系统架构(3)系统集群化部署(4)数据库分库分表 + 读写分离(5)缓存集群引入(6)引入消息中间件集群(7)现在能hold住高并发面试题了吗?(8)本文能带给你什么启发?(1)一道面试题的背景引入这篇文章,我们聊聊大量同学问我的一个问题,面试的时候被问到一个让人特别手足无措的问题:你的系统如何支撑高并发?大多数同学被问到这个问题压根儿没什么思路去回答,不知道从什么地方说起,其实本质就是没经历过一些真正有高并发

2020-06-28 18:03:29 62

原创 四种线程池拒绝策略

ThreadPoolExecutor.AbortPolicy:丢弃任务并抛出RejectedExecutionException异常。ThreadPoolExecutor.DiscardPolicy:丢弃任务,但是不抛出异常。ThreadPoolExecutor.DiscardOldestPolicy:丢弃队列最前面的任务,然后重新提交被拒绝的任务 ThreadPoolExecutor.CallerRunsPolicy:由调用线程(提交任务的线程)处理该任务最后一种会阻塞主线程,队列慢的话都阻塞

2020-06-23 15:02:02 92

原创 maven打包本地包无法打入jar包的解决方案

第一 依赖本地jar:<dependency> <groupId>com.icinfo</groupId> <artifactId>alesapi</artifactId> <version>1.0-SNAPSHOT</version> <scope>system</scope> <systemPath>${project.b...

2020-06-22 17:07:58 245

原创 Java调用excel宏

excel宏的Java调用下载jacob-1.19.ziphttps://sourceforge.net/projects/jacob-project/jacob-1.19-x64.dll放到C:\Windows\System32目录下jacob.jar引入项目excel需要保存为启用宏的工作簿,后缀为.xlsm文档特定设置 宏Sub 样式设置()'' 样式设置 宏'' Range("A1:C1").Select Selection.Font.Bo

2020-06-11 21:16:15 103

原创 TortoiseGit,与GitBash 删除(清除)账户密码

在使用git bash 克隆项目时,出现了remote: HTTP Basic: Access denied错误。我的解决方法如下(删除后,就可以在克隆项目时,重新填写git账户和密码)

2020-05-20 11:25:44 95

转载 springboot自动装配到底是什么意思?

前言使用过springboot的同学应该已经知道,springboot通过默认配置了很多框架的使用方式帮我们大大简化了项目初始搭建以及开发过程。本文的目的就是一步步分析springboot的启动过程,分析springboot是如何帮我们简化这个过程的。springboot帮我们做了什么通常搭建一个基于spring的web应用,我们需要做以下工作:1、pom文件中引入相关jar包,包括spring、springmvc、redis、mybaits、log4j、mysql-connector-ja

2020-05-11 15:48:10 121

转载 Java线程池七个参数详解

java多线程开发时,常常用到线程池技术,这篇文章是对创建java线程池时的七个参数的详细解释。从源码中可以看出,线程池的构造函数有7个参数,分别是corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue、threadFactory、handler。下面会对这7个参数一一解释。一、corePoolSize 线程池核心线程大小线程池中会维护一个最小的线程数量,即使这些线程处理空闲状态,他们也不会 被销毁,除非设置了allowCoreThre

2020-05-11 14:46:59 50

转载 Java设计模式

创建者模式创建者模式就是为了用优雅的方式创建我们使用的类。1.简单工厂模式这个用的比较少,就是有个工厂,告诉你我要什么东西,你造好了给我就行。比如说:2.工厂模式这个其实和简单工厂模式差不太多,就是将工厂继续拆分,比如说刚刚EasyBallFactory是一个总工厂,我们现在拆分成SoccerFactory和BasketBallFactory分别生产足球和篮球。某个工厂内部...

2020-05-07 17:53:50 114

转载 设计模式六大原则

单一职责原则SRP(Single Responsibility Principle)一个类只负责一个功能领域的相应职责,即就一个类而言,应该只有一个引起它变化的原因。单一职责原则是实现高内聚、低耦合的指导方针,它是最简单但又最难运用的原则,需要设计人员发现类的不同职责并将其分离,而发现类的多重职责需要设计人员具有较强的分析设计能力和相关实践经验。开闭原则OCP(Open-Close...

2020-05-07 16:55:51 44

原创 linux , mysql互为主从复制

Master-1:192.169.7.242Master-2:192.169.0.197MySQL版本:mysql-5.71.mysql配置文件修改及说明分别修改两个节点的mysql,此处修改配置文件为:/etc/my.cnf修改Master-1如下:# For advice on how to change settings please see# http:/...

2020-01-19 16:40:52 69

原创 linux下安装mysql-5.7.25步骤亲测可用

亲测可用数据库安装:需要注意的是:mysql上传路径需要时 /usr/local/,在此路径下面建mysql 将linux压缩文件放置于此文件夹https://blog.csdn.net/lch520baby/article/details/89081306linux防火墙 过滤3306端口:https://blog.csdn.net/weix...

2020-01-16 15:15:30 89

原创 zookeeper节点为什么是奇数个?

如果zookeeper拥有5台服务器,那么在最多2台服务器出现故障后,整个服务还可以正常使用。所谓的zookeeper容错是指,当宕掉几个zookeeper服务器之后,剩下的个数必须大于宕掉的个数,也就是剩下的服务数必须大于n/2,zookeeper才可以继续使用,无论奇偶数都可以选举leader。5台机器最多宕掉2台,还可以继续使用,因为剩下3台大于5/2。说为什么最好为奇数个,是在以最大容...

2019-12-05 11:23:51 77

转载 zookeeper选举机制理解

在理解zookeeper选举机制时需要先了解以下几个概念1.Sid (又称服务器id,也就是zookeeper中的myid)2.Zxid 每次znode状态发生改变该值都会受到更新(递增且唯一,唯一是相对于某个zk服务器而言),每个znode其实都维护了3个zxidcZxid 该节点创建时的事务idmZxid 该节点修改时的事务idpZxid 子节点修改的事务id,子节...

2019-12-05 11:20:55 153

转载 常见分布式集群选举机制总结

本篇文章主要讨论以下几种集群的选举机制:1,Zookeeper2,kafka3,redis4,Eureka我们探讨这几个集群的选举机制,其实就是探讨它们的高可用性。如果集群中的某些节点挂了,如何保证可用性?这个问题是分布式系统面临的三大问题之一。Zookeeper的leader选举机制,是这四种集群中最复杂的选举机制,同时也是这四种集群中最接近paxos算法的实...

2019-12-05 11:15:27 62

转载 logstash 与filebeat

1.logstash 和filebeat 是什么关系因为logstash是jvm跑的,资源消耗比较大,所以后来作者又用golang写了一个功能较少但是资源消耗也小的轻量级的logstash-forwarder。不过作者只是一个人,加入http://elastic.co公司以后,因为es公司本身还收购了另一个开源项目packetbeat,而这个项目专门就是用golang的,有整个团队,所以es公司...

2019-11-19 18:48:22 269

转载 海量日志下的日志架构优化

在前面的日志收集中,都是使用的filebeat+ELK的日志架构。但是如果业务每天会产生海量的日志,就有可能引发logstash和elasticsearch的性能瓶颈问题。因此改善这一问题的方法就是filebeat+logstash+kafka+ELK,也就是将存储从elasticsearch转移给消息中间件,减少海量数据引起的宕机,降低elasticsearch的压力,这里的elastics...

2019-11-19 18:47:31 75

sharding-jdbc.zip

sharding jdbc ,maven项目Domo,x本地可以调试,给予maven的java项目

2019-07-31

linux/windows版本tomcat7

文件包含 linux版本tomcat7余windows版本tomcat7,根据需要进行配置

2018-06-12

commons-pool2-2.4.2和jedis-2.7.2

redis所需要的jar包commons-pool2-2.4.2.jar和jedis-2.7.2.jar

2018-06-12

一个简单的Restful例子以及讲解

一个简单的例子,有助于开发人员参考进行后续开发,一个简单的demo

2018-06-12

空空如也

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