自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mybatis —— @Options注解实现执行参数配置

记录下Mybtias注解方式如何配置 SQL执行超时时长、Statement类型等。

2022-10-10 23:50:45 834 1

原创 Git —— SSH配置多仓库不同账户访问

这里用Gitlab举个例子,将刚刚创建的密钥中公钥内容粘贴到Key部分,Github也是类似的操作。不同的仓库可能是不同的访问账号,因此需要针对不同的账号生成相应的SSH Key Pair,生成github下user1账号SSH Key Pair。生成gitlab下user2账号SSH Key Pair。创建config文件,如果有则直接编辑,没有则创建。配置成功后测试连接会出现如下提示。

2022-09-24 11:08:46 837

原创 Java —— 获取用户真实IP工具类

用户获取Htttp请求发起客户端IP地址的Java工具类

2022-03-02 16:49:43 355

原创 Hadoop —— 漫画图解hdfs读、写、容错、副本机制

来自Maneesh Varshney的hdfs漫画,图解hdps读、hdfs写、hdfs容错机制、hdfs副本放置策略,帮助更好理解其流程。

2022-01-02 12:15:42 749

原创 Apache Impala —— 3.4.0版本官方文档百度网盘下载链接

百度网盘链接:https://pan.baidu.com/s/18OW28Qp–5nEhmwpNosnCw提取码:pfhw文档目录内容

2021-11-21 11:03:40 2636

原创 Apache Impala 3.4.0 —— Admission Control and Query Queuing(动态资源池)实践

主题:记录Apache Impala 3.4 动态资源池一次实践背景:主要是发现集群查询经常出现Failed to get minimum memory reservation,即内存资源不足导致查询失败,此外某些小查询在集群出现大查询时被拖慢,因此希望利用动态资源池解决成果:资源池配置成功,集群查询耗时P95下降明显,资源池应用后查询时间P95降至原来1/3,Failed to get minimum memory reservation未再出现 。Tips:实现过程记录完整,希望能对读者有帮助,.

2021-11-21 10:38:27 2342

原创 Java —— 内存泄露排查

最近发现服务器内存使用持续增长且增长速率大,怀疑是内存泄露导致的。 最终定位到是因为程序中存在线程池频繁创建但未销毁问题导致线程泄露,进而影响内存使用增长。 Tips:本文不记录排错过程,只记录可疑点及排错命令。1. 套路① 查看内存使用,对相隔一段时间的应用内存使用情况进行对比(top命令等),确认内存存在缓慢上升的情况② jstat -gccapacity 【pid】查看JVM各部分内存使用增长是否符合top命令展示的应用内存使用增长。如果符合,则使用MAT工具分析JVM堆栈情况,

2021-11-13 13:06:42 2797

原创 Apache Impala 3.4.0 —— 集群可调参数

FlagDescriptionDefaultExperimentaluse_local_catalog (bool)Use experimental implementation of a local catalog. If this is set, the catalog service is not used and does not need to be started.FALSETRUEssl_client_ca_certificate (string)(Adv...

2021-11-02 17:25:14 1810 1

原创 问题排查 —— OLAP平台获取查询引擎连接严重耗时

一、问题说明BI平台出现了查询时快时慢的问题,查看监控发现获取连接部分耗时飙升,相关监控如下:正常情况下获取连接耗时P99都在100ms以内,但是从某天开始,其耗时飙升到峰值时需要262k毫秒,严重拖慢了查询耗时。二、原因查明1. 数据库连接池系统中使用的C3P0连接池,连接参数部分只设置了jdbcUrl、username、password、maxPoolSize和minPoolSize。 其中,maxPoolSize为20,minPoolSize为1。2. Impala连接参数Impala

2021-10-24 19:25:13 2087

原创 Spring —— 基于注解的Aop在同一类下产生嵌套时切面不生效问题产生原因及解决

一、背景介绍由于程序中大量方法需要监控执行耗时,因此写了基于注解的Aop类来减少重复代码,主要作用是通过环绕通知在方法执行前后进行耗时计算,最后输出到日志/监控。相关代码如下:// 注解@Retention(RetentionPolicy.RUNTIME)@Target(value = {ElementType.METHOD})public @interface AddExecTime{ String processName();}/** * 用于记录各过程耗时ms的Aop类

2021-10-07 19:49:15 2639 3

原创 Maven — maven filtering OTS parsing error incorrect file size in WOFF head 产生原因及两种解决方案

背景说明前端静态资源文件放在后端SpringBoot项目resources文件夹下,多环境打包后前端页面出现了图标及文字未按预期样式显示的情况,查看浏览器控制台发现出现如下错误。 OTS parsing error: incorrect file size in WOFF header原因定位先来看看配置的Maven pom内容。<build> <finalName>project-name</finalName> <pl

2021-09-09 14:34:12 2867 1

原创 不得不知的Web知识 —— HttpClient中SocketTimeOut、ConnectionTimeOut与ConnectionManagerTimeOut区别

资料来源:https://www.baeldung.com/httpclient-timeout背景:最近用HttpClient设置SocketTimeOut时发现自己原本理解有误,借此查阅资料并做记录Connection Timeout作用:自请求发起开始与远程服务器建立连接的最长等待时间。Socket Timeout作用:指最长等待数据的时间,或建立连接后两个数据包之间的最大传输时间间隔。Connection Manager Timeout作用:自发起请求起,等待获取来自.

2021-09-08 21:34:55 596

原创 JMeter —— Jar包性能测试 完整流程教学

本文只使用简单用例演示项目打包为Jar并上JMeter测试的整个过程,关于高级用法请看官方文档官方文档链接:http://jmeter.apache.org/usermanual/一、下载JMeter官方使用文档: 官网链接:https://jmeter.apache.org/download_jmeter.cgi网盘链接(密码 31fs): https://pan.baidu.com/s/19QPDuMBKpvBcP7K6btCNZQ二、解压并配置环境变量① 解压压缩包到某目录这里我放.

2021-09-03 16:58:07 4189 4

原创 JWT HandBook —— 官方使用手册下载链接

官网地址:https://jwt.io/introduction/版本:JWT v0_14_1网盘链接:https://pan.baidu.com/s/1m3HaQvp6bMiAYdRUhH7i3Q提取码:a2xm

2021-09-02 13:01:46 588

原创 Hive —— Design and Architecture

目录一、Hive ArchitectureHive架构图Hive侧组件执行流程二、Hive Data Model三、Metastore存在原因Metadata Objects(元数据对象)Metastore Architecture(元数据架构)Metastore Interface(元数据查询接口)四、Compiler(解析器)一、Hive ArchitectureHive架构图Hive侧组件上图展示了Hive的主要构成组件及Hive与Hadoop的交互过程。如图中所示,Hive主要组件有:

2021-08-25 13:20:20 342

原创 SpringMVC —— @ResponseBody原理

#mermaid-svg-gtBLgQ9AnSJoXXb4 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-gtBLgQ9AnSJoXXb4 .label text{fill:#333}#mermaid-svg-gtBLgQ9AnSJoXXb4 .node rect,#mermaid-svg-gtBLgQ9AnS

2021-08-11 12:55:53 914

原创 Web —— 何为跨域?为何出现?如何解决?

目录一、同源策略1. 简介2. 例子3. 作用二、跨域资源共享(CORS)1. 简介2. CORS实现机制3. 简单请求 & 非简单请求简单请求非简单请求三、 CORS实现方案1. JSONP2. 反向代理服务器3. 服务端实现CORS① 过滤器Filter② @CrossOrigin③ Spring框架 注入 跨域配置类(推荐)一、同源策略1. 简介同源策略,它是由Netscape提出的一个著名的安全策略。当一个浏览器的两个tab页中分别打开来 百度和谷歌的页面当浏览器的百度tab页执行

2021-08-03 15:24:28 373

原创 Web —— @CrossOrigin实现跨域原理

文章目录零、上篇回顾一、SpringMVC执行流程二、HanndlerMapping中如何实现CORS? —— 基于Spring 5.3.9 版本1. AbstractHandlerMapping2x. CorsProcessor类三、思考零、上篇回顾Web —— 何为跨域?为何出现?如何解决?一、SpringMVC执行流程让我们先来回顾一下SpringMVC执行流程,其中CORS的实现主要在HandlerMapping实现。 二、HanndlerMapping中如何实现CORS? —— 基于Sp

2021-08-03 15:18:58 499 2

原创 Redis —— SpringBoot工程下的GeoHash工具类

一、依赖引入 <!--lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!--redis连接依赖--> <depend

2021-08-02 14:58:19 738 1

原创 Maven —— 获取特定依赖的 源码/JavaDoc包

一、所需命令示例用的依赖是Guava <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>30.1.1-jre</version> </dependency>相关maven命令#

2021-07-18 13:08:13 668

原创 Java并发知识 —— 可用于限流的Semaphore类

一、Semaphore类简介Semaphore 通常我们叫它信号量, 可以用来控制同时访问特定资源的线程数量,通过协调各个线程,以保证合理的使用资源。通常用于那些资源有明确访问数量限制的场景,常用于限流。比如:数据库连接池,同时进行连接的线程有数量限制,连接不能超过一定的数量,当连接达到了限制数量后,后面的线程只能排队等前面的线程释放了数据库连接才能获得数据库连接。二、Semaphore类说明1. Semaphore类结构2. Semaphore类方法acquire作用:获取一个Per

2021-07-17 14:39:11 195 1

原创 Java —— LocalDateTime实现的时间工具类

import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;public class TimeUtil { private static DateTimeFormatter UTIL_DEFAULT_DATE_TIME_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); private static DateTimeFormatte

2021-05-21 13:14:57 195

原创 Flink —— 入门案例 之 批处理与流处理实现word count

目录一、依赖引入二、Flink批处理实现word count1. 代码2. 结果三、Flink流处理实现word count1. 代码2. 结果一、依赖引入 <!-- flink-java依赖,artifactId后面为scala版本号--> <dependency> <groupId>org.apache.flink</groupId> <artifactId>fl

2021-05-03 15:31:46 551

原创 Java —— 基于注解的AOP切面实现 接口调用记录

一、预期效果对所有@RequestMapping注解的接口全部记录接口调用情况并记入日志。二、实现代码tips: 这里使用了Lombok的@Slf4j实现日志@Aspect@Component@Slf4jpublic class ReportApiCallTimesAspect { /*调用次数记录前缀,方便根据前缀获取所有接口的数据*/ public static final String WEB_API_CALL_COUNT = "web_api_call_count"; /

2021-04-19 21:23:45 1563

原创 网络 —— 单台服务器并发TCP连接数到底可以有多少

相关链接:https://blog.51cto.com/yaocoder/1312821相关链接:http://www.52im.net/thread-561-1-1.html

2021-04-16 12:07:59 171

原创 Java —— JDBC关闭Statement后是否还需要关闭ResultSet?

一、问题描述下面的代码使用了try-with-resource语法,会自动关闭Connection和Statement,是否还需要关闭ResultSet?Statement关闭后ResultSet会被回收么?二、JDBC规范JDBC规范4.3中有对Statement关闭后是否需要关闭ResultSet进行说明。应用调用了 statement.close 表明其已经完成了 statement 的使用。所有的 statment 对象都将在创建他们的 connection 被关闭时 一起被关闭。但在

2021-04-07 17:58:13 6689 1

原创 Linux —— 解决Docker内部容器DNS解析异常问题

一、问题描述docker内部容器DNS解析不了,但是直接ping IP是可以的。看到有些使用关闭防火墙的方式实现Docker内DNS解析问题,但是这样会有很大隐患,尤其是对实际生产环境来说。这里记录一下用IP伪装的方式解决的DNS解析异常问题。二、问题解决在Docker机而非容器内执行以下命令:firewall-cmd --zone=public --add-masquerade --permanentfirewall-cmd --reloadsystemctl restart firewa

2021-04-03 11:46:04 1850 1

原创 Linux —— ES启动问题之SELinux导致文件创建/写失败

一、问题描述用Docker安装ELK系统时,明明用root账户开放rwx权限了。chmod 777 /xxxx 但是在启动ES时启动失败,一直报下面两个异常Failed to create node environmentCaused by: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/plugins一开始以为是不能用root,新建了个ELK账号,但是还是一样的效果。然后好吧,可能是我安装的过程有问题,于是重

2021-04-03 11:25:33 438

原创 Docker —— 安装并运行Kafka

一、安装ZooKeeper因为Kafka需要搭配ZK使用,这里我们需要先安装ZK。Docker —— 安装、运行ZooKeeper,并使用Idea连接二、安装Kafka# 拉取Kafka镜像docker pull wurstmeister/kafka# 启动Kafka容器docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=zk机器ip:2181 -e KAFKA_AD

2021-03-31 20:48:12 1497

原创 Docker —— 安装、运行ZooKeeper,并使用Idea连接

一、Docker安装ZooKeeper# 拉取zk官方镜像docker pull zookeeper# 启动容器docker run -d -p 2181:2181 -v /usr/local/docker/zookeeper/data:/data -v /usr/local/docker/zookeeper/conf:/conf --name=zookeeper --privileged=true zookeeper# -p 2181:2181 docker端口映射到本机端口# -v /us

2021-03-31 17:04:15 1129

原创 Linux —— 利用awk处理异常日志获取关键异常信息

一、需求描述最近接到一个分析异常日志的需求,因为日志内容比较繁杂庞大,因此需要对日志关键异常信息进行过滤,通过awk即可实现。二、日志格式日志格式如下,可以主要需要获取的是 异常报错行和异常类型。三、命令实现$0——获取整行~/ERROR/——匹配带ERROR的行print $0——输出获取到的整行(注意print会自动换行,printf不会自动换行)getline——进入下一行print $0——输出获取到的整行,实际上就是为了输出下一行print "\n"——输出换行,使输

2021-03-29 12:09:48 1091

原创 Linux —— Centos7 firewall常用命令

1. 防火墙开启、关闭与状态查询systemctl start firewalld.service # 开启防火墙systemctl stop firewalld.service # 停止防火墙systemctl enable firewalld.service # 开机自启动systemctl disable firewalld.service #禁止开机自启动systemctl status firewalld # 查看防火墙设置状态2. 服务重启

2021-03-14 14:59:27 83

原创 Springboot —— 解决Access denied for user ‘‘@‘localhost‘ (using password: NO)

1. 问题描述测试SpringBoot程序接口时报错了,出现了如下异常java.sql.SQLException: Access denied for user ''@'172.18.0.1' (using password: NO) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.23.jar:8.0.23] at com.mysql.

2021-03-14 11:50:49 726

原创 SpringBoot —— 后端拦截器配置跨域

@Componentpublic class CrossOriginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { response.setHeader("Access-Contro

2021-03-13 23:20:24 208

原创 Java —— 常见对象类型简写及意义

文章目录1、PO(Persistant Object)2、VO (View Object)3、AO (Application Obejct)4、BO (Business Object)5、DO (Domain Object)6、DTO (Data Transfer Object)DTO与VO区别:7、DAO(Data access object)8、POJO (Plain Ordinary Java Object)1、PO(Persistant Object)持久对象,PO仅仅用于表示数据,除了gett

2021-03-12 13:02:02 608

原创 Git —— GitLab生成并配置SSH Key

1. 查看之前是否生成过ssh keycd ~/.ssh若无输出则继续,有输出则跳到 4. 找到.ssh文件夹,并以文本方式打开id_rsa.pub2. 生成SSH Keyssh-keygen -t rsa -C “注释内容,一般为你在GITLAB上的邮箱地址”3. 遇到需要回车的直接回车,不用输入 一直回车4. 找到.ssh文件夹,并以文本方式打开id_rsa.pub打开后直接复制全部内容即可5. 进入GitLab设置页点击右上角Profile Settings6. 添加

2021-03-08 20:41:02 304

原创 Mybatis-plus —— Invalid bound statement异常

错误截图org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)错误原因对于IDEA系列编辑器,XML 文件是不能放在 java 文件夹中的,IDEA 默认不会编译源码文件夹中的 XML 文件。解决方法方法一. 将文件转到resource文件夹下 # 这里mapper是resource下的文件夹,xml在此文件夹下 mapper-locations: classpath*:mapper

2020-09-19 10:12:21 105

原创 如何在Docker下使用Nginx

1. 拉取镜像docker pull nginx2. 从容器中复制nginx.conf# 生成容器docker run --name nginx -p 9001:80 -d nginx# 将容器nginx.conf文件复制到宿主机docker cp nginx:/etc/nginx/nginx.conf /tmp3. 创建挂载目录mkdir -p /usr/local/docker/nginx/confmkdir -p /usr/local/docker/nginx/logmkdir

2020-09-13 01:30:22 2968 3

原创 项目中如何使用Docker下的MySQL?

一、docker安装yum -y install docker-io#当前启动systemctl start docker#自启动systemctl enable docker二、docker镜像源修改(不然拉取会很慢)阿里镜像:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors三、docker安装mysql # 1.找镜像 docker search mysql # 2.拉镜像docker pull mys

2020-09-07 16:06:33 502

原创 算法 —— 2020年Bilibili秋招后端开发笔试

一、考察内容30道单选题,3道编程题。单选题相关内容有计网、操作系统(Linux)、数据结构和排序算法、C相关知识等。二、编程题一题目内容:给一组含4个数(1-10)的数组,要求输出这四个数经过 加减乘除后 是否能组成二十四点,不能重复使用同一位置的数。 public static boolean Game24Points (int[] arr) { // write code here if(arr == null || arr.length == 0)

2020-08-19 11:18:22 264

空空如也

空空如也

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

TA关注的人

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