自定义博客皮肤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 1150

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

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

2023-01-13 16:38:32 425

原创 go实现交替打印

package main import ( "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 627

原创 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 2589

原创 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 1559

原创 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 753

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

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

2021-04-16 16:12:04 266

原创 Docker构建微服务记录

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

2021-04-09 10:16:58 172

原创 kafka(1)

2021-04-06 09:40:14 103

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

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

2020-12-01 14:39:06 1425

原创 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 427

原创 Hadoop案例wordCount执行流程

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

2020-08-25 18:23:34 510

原创 zookeeper基本命令、java应用

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

2020-08-01 10:15:26 148

原创 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 134

原创 JVM(二)垃圾收集

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

2020-07-21 15:41:46 174

原创 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 334

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

搭建后的应用信息 springboot应用:192.168.97.128:8001 prometheus: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 504

原创 JVM(一)

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

2020-06-09 13:19:04 158

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

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

2020-05-23 16:02:45 411

原创 多线程(一)

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

2020-05-17 20:56:34 191

原创 mysql主从同步实践

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

2020-05-08 18:12:11 214

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

xx

2020-05-08 11:13:03 582

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

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

2020-03-17 16:31:12 548

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

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

2020-03-02 16:33:35 1243 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 4394 7

空空如也

空空如也

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

TA关注的人

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