自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xefei博客

编程到底

  • 博客(34)
  • 资源 (5)
  • 收藏
  • 关注

原创 HikariCP连接池分析-重启数据源

项目中HouseKeeper线程在创建数据库连接时,如果应用程序与数据库网络之间有丢包问题、数据库出现短暂问题就会造成该线程一直处于IO等待中。默认情况下没有配置JDBC的 readTimeOut 参数时间,那么这个线程会一直等待。出现以上两个问题都需要手动重启应用程序,非常影响线上项目。HikariCP专门启用一个线程(HouseKeeper)每隔几秒轮询补充连接池的数量,那么如果这个线程被卡住那么连接池很快被耗尽。经常遇到一个现象DB宕机了,DBA重启数据库之后,连接池有时不会自动恢复,只能重启。

2024-02-05 13:50:24 633

原创 弄清ThreadLocal 原理

ThreadLocalMap 就是存放数据的地方,类似map,实现类是继承WeakReference的Entry类,WeakReference代表弱应用对象,主要把key进行弱引用,value是强引用的。其实key弱引用和value没有关系,由上图可以分析出 主要为了GC能够回收threadLocal对象,前提是threadLocal没有被其他地方引用。还有调用set,get,remove方法都会清空key 为null的Entry的对象,也是保证value能够被回收。get方法、remove方法比较简单。

2023-08-10 18:59:14 69

原创 网络通信-NIO

BIO、NIO、AIO区别BIO是同步阻塞IONIO是同步非阻塞AIO是异步非阻塞,这个用的少,且操作系统支持力度的不够完善。了解它们区别,必须要搞清楚 同步、异步 与 阻塞、非阻塞 两组的关系。同步、异步是相对线程运行任务情况以及对用户的感知区分的,所谓同步就是线程接受任务必须把任务运行完成之后才反馈用户结果; 所谓异步就是线程接受到任务后立即反馈给用户状态,然后自己默默的后台运行任务,运行完成之后再把结果通知给用户。IO同步还是异步主要看IO线程读写操作是同步还是异步。这里BIO、NIO都

2022-04-30 21:24:39 510 2

原创 并发编程-volatile

volatile 作用volatile是java的关键字用于修饰变量。主要作用保证变量内存可见性和禁止指令重排序。在代码 中 volatile修饰的变量,在该变量进行赋值操作。java在编译的时候会在赋值操作指令之后插入一条lock前缀指令(内存屏障)。通过该指令保证可见性和禁止指令重排序可见性定义:当某一个线程修改了某个对象的共享变量的值时,其他的线程能立即获取到这个变量的最新值。原理:通常情况下可以简单的认为,线程修改变量都是在自己的工作内存中进行,如果变量是volatile修饰的话,线程修改

2022-04-27 21:52:20 691

原创 并发编程-copy-on-write

copy-on-write 译义是写时复制,简称cow。常见中并发编程中,如jdk中并发工具包CopyOnWriteArrayList,CopyOnWriteSet 等就使用的该技术保证并发访问效率。使用场景:适合读多写少的场景。我们知道读写锁也适合读多写少的场景,但与cow使用的完全不同实现技术,而且他们有个本质的区别是cow读写不互斥而读写锁读写互斥。实现思想:多个线程对同一个资源进行访问时,一般读取操作不会有并发安全性问题,直到有一个线程进行对资源修改操作,那么先对资源复制一份,然后在副本

2022-04-25 15:10:11 1363

原创 spring-cache探究

cache在我开发应用过程最常用得工具,框架有 reids,ehcache. 或者 在代码中使用HashMap作为缓存.spring-boot 使用 Cache 时非常简单的,引入依赖 ‘spring-boot-starter-cache’ 和启用注解 @EnableCaching注解,以及第三方jar 就可以使用.这里研究下1.为啥有了自动装配还开启注解才能使用呢?2. 注解可以手动选择使用哪个缓存工具带着问题研究才会更好.先研究下 @EnableCaching开关注解注解一般都时通过Imp

2022-03-26 12:54:42 500

原创 netty-proxy 内网传统工具

netty-proxy 是一款基于JAVA 语言实现的网络穿透(代理)工具。目前市面上的网络穿透工具虽然很多有收费,有免费,有安装复杂,功能过于丰富。这款基于JAVA语言开发(目前java开发者居多),功能简洁,只支持http和tcp代理转发协议,面向开发者开发调试使用。

2022-02-26 19:22:49 1565

原创 jpa 自定义扩展实现原理

时间真快,一晃已经2021半年又过去了,年前初制定的每周一篇文章没有实现。~~~因工作项目开发需要,最近研究了下jpa的功能。主要为了实现两个目标需求:实现可以类似mybatis,可以使用配置文件编写复杂的sql管理。拦截执行sql执行,可以动态添加公共字段。如插入时,可以统一插入公共时间、创建人等公共属性。扩展JpaRepository,实现自定义业务公共方法。JPA引入 <dependency> <groupId>org.springfram

2021-08-08 10:57:22 1151

原创 orace11g 安装

文章目录oracle安装系统要求系统设置oracle安装创建用户组创建用户设置oracle密码创建安装oracle所需要的文件夹修改配置文件安装依赖最好重启下安装配置oracle监听程序添加数据库实例启动和关闭实例的程序至此安装结束启动监听启动实例设置开机启动登录oracle查看oracle进程启动关闭命令参考链接oracle安装系统要求CentOS7_64位系统。(最好7以上)Oracle数据库(版本11.2.0.4.0系统设置关闭seliunx查看selinux状态:getenfo

2020-12-06 12:38:10 140

原创 文件监视程序数量的系统限制

处理echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf

2020-11-20 09:59:32 232

原创 shell 启动springboot

本shell脚本可以便捷的启动或停止java应用程序包含(spring-boot),且支持重启、停止、查看日志登命令。免去使用kill命令结束进程# 设置可执行命令 (不设置的话可以使用 sh 执行)chmod +x ./runjava.sh使用./runjava.sh jar所在路径 start|stop|restart java程序参数(非必须)./runjava.sh [xxx.jar] [start|startnolog|stop|restart|status|logshow|r

2020-09-22 09:08:42 1711 1

原创 RocketMq-简单使用

生产者public class TestProducer { public static void main(String[] args) throws InterruptedException, MQClientException { DefaultMQProducer producer = new DefaultMQProducer(); producer.setNamesrvAddr("111.x.x.x:9876"); producer.setProducerGroup("dem.

2020-09-07 15:38:57 421

原创 mysql-详细安装

安装步骤1、下载tar包,这里使用wget从官网下载wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz2、将mysql安装到/usr/local/mysql下解压tar -xvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz移动mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/loc

2020-08-27 16:08:49 135

原创 mysql- 迁移 datadir

+ 迁移datadir停止mysql服务systemctl stop mysqld2,3步骤是操作系统的问题,可能省你N个小时拍错问题。禁用SELinuxsetenforce 0如果有apparmor 需要修改对应的路径vim /etc/apparmor.d/usr.sbin.mysqld移动原有的datadir目录cp -ar /var/lib/mysql /data/mysql mv /var/lib/mysql /var/lib/mysql-bac

2020-08-27 16:07:46 443

原创 docker镜像制作

最小JDK镜像准备jdk中jre包,并清理掉部分文件,减少体积.#删除文本文件rm -rf COPYRIGHT LICENSE README release THIRDPARTYLICENSEREADME-JAVAFX.txtTHIRDPARTYLICENSEREADME.txt Welcome.html \#删除其他无用文件rm -rf lib/plugin.jar \lib/ext/jfxrt.jar \bin/javaws \lib/javaws.jar \lib/desktop

2020-08-25 15:48:06 259

原创 springboot 参数校验--Validator使用

Validator使用步骤+ 实现Validator接口@Componentpublic class DataValidator implements Validator { @Override public boolean supports(Class<?> clazz) { return DataForm.class.equals(clazz); } @Override public void validate(Object o

2020-08-21 16:55:31 446

原创 oracle-redo日志分析

logmnr分析日志3步骤+ 查询redoe日志文件路径select member from v$logfile;添加要查看的日志文件exec dbms_logmnr.add_logfile(logfilename=>'/opt/oracle/app/oradata/orcl/redo01.log',options=>dbms_logmnr.new);exec dbms_logmnr.add_logfile(logfilename=>'/opt/oracle/app/ora

2020-08-18 17:13:09 1107

原创 springboot-websocket

本文建立websocket方法比较适合实际场景使用,但然还有很简单的方法,可以自行百度。引入start-websocket <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency>创建WebSocketHandle.

2020-08-05 11:24:11 186

原创 springBoot-文件上传下载

springboot  文件上传接口 @RequestMapping(value = "upload",method = {RequestMethod.POST}) public Result uploadFile(@RequestParam MultipartFile file,@RequestParam String type,@RequestParam String upload_user){ try { if(StringUtils.isE.

2020-08-05 11:01:20 121

原创 iptables 入门使用

iptables 防火墙禁用 自带的防火墙systemctl stop firewalld.servicesystemctl disable firewalld.servicefirewall-cmd --state安装 iptables-service 并设置启动yum install iptables-services -ysystemctl enable iptables.service开启内核转发vi /etc/sysctl.conf添加变量net.ipv4.ip_forwar

2020-07-19 21:16:22 302

原创 VARCHAR2 与 NVARCHAR2 区别

Oracle VARCHAR2与 NVARCHAR2 区别首先说明下 VARCHAR 官方给出建议不要使用了,强烈建议使用VARCHAR2;  VARCHAR2 与 NVARCHAR2 在使用角度上看,主要区别是每个字符的存储空间不一样,例如在编码是GBK的i情况下:VARCHAR2(10) 可以存储5个汉字,10个英文字符.NVARCHAR2(10) 可以存储10个汉字,10个英文字符; 10就是定义的是存储的字符个数,每个字符都占用2个字节.  根据oracle安装的字符集,如果是

2020-07-17 19:00:58 4574

原创 Kubernets 安装

基础环境 docker 私有库安装 Kubernets 安装 k8s-Flannel 网络安装 k8s-dns 安装 k8s-UI 安装 k8s 应用发布 常用命令集 附镜像地址 k8s master 高可用(稍后) k8s etcd 集群(稍后) 基础环境系统要求intel 处理器 不低于8G内存 4核CPU centos7.4 64...

2020-03-13 12:22:54 519 1

原创 编程-常用

查看监听端口netstat -an |find /i "listeningSSH 上传/下载scp -p 22 root@192.168.30.112:/root/wechat/java/jdk-7u67-linux-x64.tar.gz jdk-7u67-linux-x64.tar.gzscp /home/lnmp.gz root@ip:/usr/local/src/lnm...

2018-11-02 09:56:25 135

原创 git - 命令

安装后git config --global user.name “dengyifei”git config --global user.email &quot;540015260@qq.com&quot;junior usegit add file1 file2git commit -m “提交说明”show current workdir statusgit statusg...

2018-11-02 09:32:48 109

转载 ffmpeg-安装

安装 (链接博友)https://yq.aliyun.com/articles/593287https://trac.ffmpeg.org/wiki/CompilationGuide/Centos?spm=a2c4e.11153940.blogcont593287.10.20cb3a8eFPK7Ficentos 7sudo rpm --import http://li.nux....

2018-11-02 09:31:49 373

原创 Maven - 命令

打包spring bootmyeclipse 插件打包org.apache.maven.plugins:maven-jar-plugin:2.4:jar org.springframework.boot:spring-boot-maven-plugin:1.5.4.RELEASE:repackage需要配置pom.xml 指定spring-boot-maven-plugin插件版本...

2018-11-01 10:54:05 139

原创 mysql - 命令

授权登陆grant all privileges on . to ‘root’@‘183.209.250.216’ identified by ‘rootroot’;flush privileges;

2018-11-01 10:53:07 108

原创 nginx - 命令

nginx 启动/测试/stop/usr/sbin/nginx -c /etc/nginx/conf/nginx.conf/usr/sbin/nginx -t -c /etc/nginx/conf/nginx.conf/usr/sbin/nginx -s -c /etc/nginx/conf/nginx.conf/usr/sbin/nginx -s reload停止: kil...

2018-11-01 10:51:19 99

原创 NPM - 命令

NPM 常用设置npm config set prefix “D:\nodejs\npm” npm config set cache “D:\nodejs\npm-cache”npm config set registry https://registry.npm.taobao.org

2018-11-01 10:50:13 97

原创 oracle - docker环境下安装

oracle 11.0.2 64bit 企业版 实例名: helowin启动容器:docker run -d --name oracle_11g -p 1521:1521 registry.aliyuncs.com/helowin/oracle_11g进入容器 docker exec -it 容器ID /bin/bash加载环境变量 source /home/oracle/...

2018-11-01 10:49:19 237

原创 kubernets -安装

文章目录基础环境docker 私有库安装Kubernets 安装k8s-Flannel 网络安装k8s-dns 安装k8s-UI 安装k8s 应用发布常用命令集附镜像地址k8s master 高可用(稍后)k8s etcd 集群(稍后)基础环境系统要求intel 处理器 不低于8G内存 4核CPUcentos7.4 64位 最好Minimal安装软件要求intel 处理器...

2018-11-01 10:46:08 409

原创 oracle - 命令

常用命令startup (SHUTDOWN 、NOMOUNT 、MOUNT 、OPEN)shutdown (Normal, Immediate, Transactional, Abort)create spfile from pfile;create pfile from spfile;with grant option

2018-11-01 10:42:43 79

原创 oralce-解决连接断开问题

最近,有客户提出在系统的应用中使用PLSQL DEVELOPER工具,出现数据库频繁自动断开连接,是在不使用的情况下(每隔一段时间)的异常现象,而且还有个怪异形象,就是同一个网段就没有出现过这样的现象,由于开发人员提到了,就到网上找相应的资料,有三种解决方法。方法一、直接修改资源配置文件第一步,查询资源文件,找到CONNECT_TIME所在的profile名。select resource...

2018-11-01 10:38:32 409

转载 oracle 11g 移动数据文件

oracle 11g 移动数据文件alter database方法***关闭数据库***SQL&amp;amp;gt; shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.***移动数据文件,用oracle用户操作***[oracle@test ~]$ mv /u01/app/oracle...

2018-11-01 10:36:31 429

oracle11g依赖包

由于有些客户现场服务器无法连接互联网,需要单独下载离线安装所需要的依赖rpm包,这里基于centos7.7 服务器缺少的依赖安装包。有gcc等!

2020-12-06

一行代码获取JSON多级信息

1. Configuration 提供多级JSON配置信息无损存储。 2. 将JSON的对象直接使用结构化树形结构保存 3. 便捷的可以设置或获取多级配置信息。configuration.getString("core.container.job.class")

2020-10-30

java spring-boot shell 启动器

本shell脚本可以便捷的启动或停止java应用程序包含(spring-boot),且支持重启、停止、查看日志登命令。免去使用kill命令结束进程!

2020-09-22

glibc-2.29.zip

glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc, 在制作docker alpine镜像可以需要用到他

2020-08-25

python文件夹进行监控

基于pyinotify模块API接口,对文件夹进行监控和通知处理事件。以及通过对文件的最后修改时间的在间隔时间段内是否变化,来判断文件是否写入完成。

2020-08-21

空空如也

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

TA关注的人

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