自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ElasticSearch reindex创建新索引并指定路由

借助ElasticSearch _reindex API,将源索引数据同步到新索引中,并在新索引中将指定字段作为路由routing。

2023-05-16 17:00:24 701

原创 NoClassDefFoundError的原因来自第一次类的初始化

java栈空间配置太小,接口第一次调用时通过class.forName()进行类加载、类静态代码块的初始化。初始化代码含有递归逻辑,递归次数太深,报StackOverflowError,类初始化失败。一个接口报NoClassDefFoundError,接口逻辑会通过class.forname()加载初始化类,类的静态代码中含有递归逻辑。往类的初始化错误方向进行问题排查。当接口被第二次调用时,就会报NoClassDefFoundError。

2023-01-13 16:38:32 275

原创 go实现交替打印

package mainimport ( "fmt" "strconv")import "time"func main() { // 定义缓冲区为1的channel,类似于java里的阻塞队列 chala := make(chan int,1) // 主线程插入数据1 chala <- 1 // go启动协程执行func go say(chala, "协程1") go say(chala, "协程2") // 主线程sleep 给两个线程时间执行。主线程结束,子线程

2021-09-26 17:03:56 543

原创 nginx配置Https 访问cxf webservice修改soap location仍是http问题

首先是通过cxf框架发布的webservice服务。后续要使其支持https,所以在nginx上部署证书监听443端口,然后转发至实际的webservice服务。可以看到访问wsdl已经受到https保护,而soap address location却仍然是http。会导致请求方通过https访问wsdl后又把请求发给http。解决:配置publishedEndpointUrl可以看到wsdl上地址已经修改为https...

2021-06-29 10:41:06 2313

原创 springboot+shiro+springsession解决分布式session

现在一个项目后台api以集群方式部署,前端请求会经过负载均衡分散到集群上。shiro默认使用内存存储session,从而需要解决分布式session问题。一、maven依赖主要用到了shiro+spring-session依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring-boot-web-starter

2021-06-01 15:22:10 1293

原创 RDS CPU告警排查

问题现象:RDS周期性CPU占用率接近90%触发报警innoDB访问行数普遍维持在300多万排查:1.查询死锁相关信息,没有死锁信息SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;--事务SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;2.可能是慢sql导致。设置慢查询时间long_query_tim

2021-04-19 15:49:12 595

原创 Docker容器与宿主机时区不一致localtime

Docker容器与宿主机时区不一致,导致容器内应用新增数据时记录的创建时间错误。宿主机是CST 容器是UTC通过命令在不重启容器的情况下改变时区docker cp /etc/localtime 95ca565f487b:/etc/localtime

2021-04-16 16:12:04 190

原创 Docker构建微服务记录

通过Dockerfile文件来将springboot构建docker镜像首先看下项目的目录结构bin目录作为宿主机和容器的挂载目录。下属两个文件夹一个config用于放配置文件,一个log用于保存容器内运行产生的日志:在配置文件中配置了springboot日志生成的路径logging: file: path: bin/logDockerfile中配置的内容将springboot添加到镜像里,启动时读取容器内部bin/config下的配置文件。启动容器时会进行挂载的操作,因为bi

2021-04-09 10:16:58 97

原创 kafka(1)

2021-04-06 09:40:14 59

原创 Mysql Date字段索引失效情况

单表总记录5000W,当查询条件可能涉及的记录数达到五分之一时,放弃走索引搜索走全表查询。1、大于2020-10-28的记录数大致在800W,使用到索引。2、查询条件改为2020-10-25,执行计划显示未使用索引...

2020-12-01 14:39:06 1334

原创 SparkStreaming+Kafka实现wordcount

使用sparkStreaming消费kafka消息scala消费端<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.12</artifactId> <version>2.4.5</version> </dependency> <dependency>

2020-11-10 14:36:54 331

原创 Hadoop案例wordCount执行流程

mapreudce操作统计文件中单词出现次数将mapreduce程序打jar包,放到hadoop机器上执行hadoop jar xsf.jar mapreduce.Dirverx /123 /usr/local/server/hadoop-2.10.0/outmapreduce.Dirverx为driver类全限定类名/123: 为输入文件路径默认从hdfs上读取/usr/local/server/hadoop-2.10.0/out:为结果输出路径查看输出结果mapreduce流程ma

2020-08-25 18:23:34 426

原创 zookeeper基本命令、java应用

基本命令创建 -e临时节点 -s顺序节点create (-e -s) path data查询节点ls path更新数据set path data查询数据get -s pathdataversion在数据变化后会+1查看当前节点的角色是leader\follower./zkServer.sh status删除,提供cas删除delete path [version]Java客户端引入依赖<dependency> <groupId>org.ap

2020-08-01 10:15:26 93

原创 zookeeper集群搭建

集群模式1、解压缩安装包后,将conf目录下的zoo_sample.cfg复制一份更名为zoo.cfg,并对其进行配置。配置dataDir存放文件。集群关系通过server.id = ip : port1: port2的形式配置三个端口的含义:clientPort=2181表示客户端访问端口。2888 leader节点和follower通信端口。3888 leader选举通信端口。2、在上面配置的dataDir目录创建空白文件myid,内容为id也就是配置中每台机器对应的id.3、通过bi

2020-08-01 08:31:29 93

原创 JVM(二)垃圾收集

判断是否垃圾引用计数通过添加一个引用计数器,引用了加1,引用失效减1。引用计数为0则判断为垃圾。但无法收集循环引用的对象。所以一般不采用此方式。可达性分析通过一系列称为GCRoots的根对象,根据引用向下搜索。如果对象没有可达的GCRoots则标记为垃圾。可作为GCRoots的对象:1、虚拟机栈栈帧中局部变量表里的变量。2、java类中静态变量。3、常量池中的引用。4、类加载器5、synchronized关键字持有的对象。引用类型强引用:Object j = new Object()

2020-07-21 15:41:46 98

原创 KMP字符串模式匹配算法JAVA

给定一个目标串,一个模式串。判断目标串是否包含模式串,返回目标串开始匹配的地址。BF算法BF算法采用穷举,每次不等时目标串 i加1,模式串j回退到0。平均时间复杂度为O(M*N)static int bf(String yuan, String target){ char[] yuanChar = yuan.toCharArray(); char[] targetChar = target.toCharArray(); int i = 0, j = 0;

2020-07-06 17:30:50 224

原创 springboot+prometheus+grafana搭建应用监控

搭建后的应用信息springboot应用:192.168.97.128:8001prometheus:192.168.97.128:9090 (默认配置端口的是9090)grafana:192.168.97.128:3000(默认端口3000,用户名密码 admin/admin)一、springboot配置引入项目依赖<dependency> <groupId>org.springframework.boot</groupId>

2020-07-01 14:32:05 386

原创 JVM(一)

JDK、JRE联系JDK包含了JRE类加载机制首先编写的源码文件,也就是后缀为.java文件。会经过源码编译器,编译成.class文件。再通过类加载器classLoader加载进JVM虚拟机。JVM类加载机制主要分为加载、连接、初始化等阶段。加载加载过程主要是:(1)通过类的全限定类名获取此类的二进制流。(2)根据二进制流,在JVM的方法区保存类的信息。(3)在堆中创建class对象,指向方法区类元信息。连接校验确保加载的二进制流,符合JVM数据要求。准备为静态变量开辟内

2020-06-09 13:19:04 112

原创 算法-动态规划(斐波那契|青蛙跳台阶|01背包)

动态规划的基本思想是通过子问题的结果推导出问题结果。先把子问题结果都保存起来,要求问题结果时,从保存的结果里找到之前的结果组合成新问题的结果。同时遵循自左向右,自下而上。斐波那契F(n)= F(n-1)+F(n-2)是问题结果的推导。n时的结果是n-1的结果加n-2的结果。用数组来保存之前的结果,要求N时,就去数组里拿。这题也能用递归求解,但耗时过长。每次递归都要重新计算结果。```javaclass Solution { public int fib(int n) {

2020-05-23 16:02:45 297

原创 多线程(一)

进程与线程线程是进程的一部分,线程本身不会单独存在。进程是操作系统资源分配的基本单位,线程则是资源分配的最小单位。线程存在的意义在于提升CPU的运行效率。一个CPU单位时间只能执行一个任务,假如这个任务执行过程中阻塞,那CPU资源就被闲置。因此加入线程,在JVM层面每个线程拥有自己的虚拟机栈与程序计数器。多核CPU下,CPU执行中线程可以被挂起,根据线程的程序计数器又能从上次执行到的地方继续执行。线程状态操作系统进程五态新建状态NEW:进程被创建时所处的状态。就绪状态READY:进程已经具备了可

2020-05-17 20:56:34 130

原创 mysql主从同步实践

主从同步原理binlog用于记录用户操作数据库的sql语句。主从同步环境中,主库与从库建立通信将主库的binlog发送给从库。从库将binlog解析为relaylog后,在从库执行sql语句。操作步骤:主库配置1、配置my.cnf,开启binlogserver_id = 1 #唯一标识,主库从库不能重复log_bin = mysql-bin #开启日志binlog_format=MIXED    #日志记录的格式max_binlog

2020-05-08 18:12:11 136

原创 nginx未配置body_size导致上传图片接口请求失败(Request Entity Too Large)

xx

2020-05-08 11:13:03 439

原创 wait()、notify()多线程交替输出

在线程获取到锁对象后,执行锁对象的wait()。当前线程将释放锁并加入锁对象的等待队列,其他线程调用锁对象的notify()、notifyAll(),则将之前加到等待队列的线程改变到锁对象的就绪队列中。等到CPU轮转到这个线程,就继续执行输出。public static void main(String[] args) throws InterruptedException { ...

2020-03-17 16:31:12 465

原创 Mysql函数group_concat、find_in_set进行数据库字段值翻译

场景配方表:记录包含的原料sources表示原料,字段值之间用逗号分隔原料表:对应原料id和原料名称现需要查询出的原料结果显示为原料名称,并以逗号分隔。可通过函数group_concat、find_in_set实现...

2020-03-02 16:33:35 1045 1

原创 springboot整合ldap实现AD域认证

springboot整合ldap实现AD域认证这里以distinguishedName:CN=service_leave,OU=Service,OU=SysAuth,DC=al,DC=com对应的条目为例步骤1、引入maven<dependency> <groupId>org.springframework.boot</groupI...

2019-11-05 18:32:35 4056 7

空空如也

空空如也

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

TA关注的人

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