- 博客(46)
- 资源 (2)
- 收藏
- 关注
原创 nginx-ingress-controller组件中Nginx的版本升级
自己升级nginx-ingress-controller组件中的Nginx版本,避免整体组件升级带来的兼容性问题
2024-02-21 11:18:19 1189 6
原创 k8s、docker关联目录占用空间太大
今天突然磁盘满了,查看了一下,都是k8s、docker关联的目录占用太大(/var/lib/docker/overlay2和/data/registry/docker/registry/v2/blobs/sha256),使用第一种方式删除了悬空镜像,清理了19G的空间(/var/lib/docker/overlay2),其它清理命令没有使用,以备后用。2、删除所有未使用镜像和悬空镜像。删除所有状态为dead的容器。
2023-04-10 15:43:49 1106 1
原创 Oauth2.0实现token刷新功能(二)
文章目录前言直接上代码总结前言之前写过一篇“Oauth2.0实现token刷新功能”,发现大家阅读的还是特别多,那个是基于Spring Cloud实现的刷新功能,现在将它改为基于普通过滤器实现token刷新。直接上代码基本思路还是跟之前一样,过滤器拦截请求验证token,token过期后请求单点登录服务器换取新的access_token和refresh_token,将两个token放到过滤器返回体的头部。从而不影响本次请求,同时还能在本次请求的过程中做到无痕刷新token。@Override
2022-04-22 18:27:44 4509
原创 idea将项目打包成jar供其它项目引用
文章地址:https://www.panziye.com/java/3226.html主要参考他的打包过程,别的项目的引用,我是这样做的:1、直接放到自己创建的lib目录下2、pom中直接引用
2022-03-10 15:01:40 436
原创 springboot+mybatis+druid实现数据源动态切换
提示:本文主要流程参考博客:https://www.cnblogs.com/xifengxiaoma/p/9888240.html集成druid数据库连接池参考博客:https://www.cnblogs.com/dyc940210/p/9334589.html文章目录配置步骤1.配置文件中配置多数据源信息2.启动类配置3.mybatis配置4.动态数据源实现类5.动态数据源上下文6.注解AOP配置7.注解使用总结配置步骤1.配置文件中配置多数据源信息代码如下:datasource:
2022-01-19 13:07:01 356
原创 服务器遭遇xmrig挖矿病毒
发现问题:在自己买的阿里云服务器上部署的项目之前就偶尔会自己kill掉,一直没有在意,重启项目后继续使用。但是昨天重启后一直被kill掉,根本没法正常启动,用top命令看了一下,发现一个奇怪的进程一直占用CPU在50%左右,然后去阿里云控制台看了一下,最近一个月CPU使用率几乎都接近100%。最后上网查了一下,xmrig是一款挖矿病毒解决问题:百度了一下暂时解决了,基本跟阿里给的方案一样。直接看看阿里售后的说法:1、首先看一下为什么阿里云没有安全提示![在这里插入图片描述](https:/
2021-12-25 23:19:22 3935
原创 SpringSecurity+Oauth2集成短信登录
之前的博客有写过SpringCloud+SpringSecurity+Oauth2的token刷新功能,最近又完成了短信验证码登录的功能。SpringSecurityOauth2没有直接提供集成短信登录的配置,我们可以仿照用户名密码登录的整个流程来实现短信验证码的登录。主要参考来自视频https://www.bilibili.com/video/BV16J41127jq?p=24,大家有时间的话还是可以将所有的视频看一下,照着他的做基本就可以实现短信登录的需求。
2021-11-11 18:50:34 1769 2
原创 利用html模板发送邮件
扣扣分享交流群:1125844267一、背景刚刚在测试别的项目组的项目时,突然发现人家的邮件内容怎么那么好看呢,再看看自己的,就几行字发过去了,不要说客户能不能满意,首先自己就感觉不好看,所以自己也搞一个试试。二、展示完成后的邮件内容:三、代码实现(1)前端模板(也是自己网上找的,根据自己实际情况做了修改):<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head> <m
2021-11-08 16:03:18 5120
原创 java开发过程中遇到的小问题总结
本文会根据实际情况不断更新在开发过程中,给redis配置了密码(配置过程自行baidu),点击启动redis但是项目一直报错io.lettuce.core.RedisCommandExecutionException: ERR Client sent AUTH, but no password is set,需要命令启动,读取指定配置文件:redis-server.exe redis.windows.conf...............
2021-11-04 14:01:38 1037
原创 动态操作定时器
扣扣技术分享交流群:1125844267说明:参考自一篇博客,没有保存具体链接1、首先是一个工具类,具体对定时任务实施启动、取消和修改操作public class ScheduleUtil { private static ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler(); private static Map<String, ScheduledFuture&l
2021-09-27 16:13:27 247
原创 docker安装Oracle11g
扣扣技术分享交流群:1125844267说明:参考自一篇博客,没有保存具体链接1、拉取oracle镜像docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g2、创建数据库挂载文件目录mkdir -p /var/local/ora_datachmod -R 777 /var/local/ora_data/3、创建容器docker run -d -p 1521:1521 -v /var/local/or
2021-09-27 14:51:45 241
原创 Oauth2.0实现token刷新功能
1、Oauth2.0简介Oauth2.0是一个授权协议,提供了一种解决用户资源共享问题的思路,它不是一种实现。对于java来说,我们可以利用Spring Security OAuth2来实现。Oauth2.0实现的最基本的思路:上图的名词解释:几种授权模式:授权码模式基本思路:微服务架构下的时序图:2、刷新token(1)基本思路首先我们要明白,在授权码模式下,在网关请求获取access token的时候,接口会返回一个access token和一个refresh token,我
2021-07-13 13:25:51 10359 1
原创 rabbitMQ插件shovel配置(数据同步)
一、shovel是什么?其实,shovel和上一篇博客中的federation的功能是类似的,都是为了MQ间的消息同步。不同的是,federation需要每个MQ上都配置,它只是个拉取消息的功能,而shovel只需要在一个MQ上配置即可,它是个双向的动作,既能拉取消息,也能推送消息,所以只需要知道一台服务器ip就能实现双向通信,这在某些特定的场景下是特别适合的,比如有一台服务器的ip是不确定的。一般情况下都是一个MQ的队列和另一个MQ的交换机进行通信,当然这也不是必须的,只是普遍这么使用。...
2021-03-16 12:25:19 3271 1
原创 rabbitMQ插件Federation配置(数据同步)
概述Federation插件的最高目标是在节点间交换信息而不需要集群,这是使用这个插件最大的原因。一、federation可以做什么?这个插件允许绑定虚拟主机和队列,一个绑定的虚拟主机和队列可以接收一个或多个上游(upstreams)的信息。一个绑定的交换机可以过滤上游发布的信息到本地。一个绑定的队列可以让一个本地的消费者接收上游队列的信息。二、特点1、这个插件可以交换节点或者集群间的信息;2、可以有不同的用户和虚拟主机;3、可以是不同版本的RabbitMQ和Erlang;...
2021-03-10 23:13:59 2209
原创 logback日志在项目启动后立刻清理历史日志
背景:搭了一个maven项目,只有一个main方法,然后打成一个jar包以供别的程序去启动执行。项目中配置了logback日志策略,但是在生产环境下发现日志可以正常生成,但是没有删除历史日志,设置的只记录近期30天的日志信息。思路:因为这个main方法执行完,整个进程就没有了,可能会在很短的时间内就执行完了,这和一直运行的服务还是不一样的。那么可能就是日志还没来得及清理进程就没有了。那么有没有一种配置可以让日志清理在项目刚刚运行时立马执行?查了一下是可以的,如下配置:查看源码可以看到,会
2021-03-03 14:34:27 3906
原创 并发获取不重复的当前时间
参考:https://blog.csdn.net/qq_36402372/article/details/83753395private static AtomicLong atomicTimeMills = new AtomicLong(0);private static DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");public static String getNextTime
2021-03-01 15:34:20 709 4
原创 Linux定时分隔清除日志文件
1、设置Linux定时器crontab -e编辑属于当前用户的定时任务0 */1 * * * sh /usr/local/ziwu/back/myScheduleTest.sh //脚本所在目录2、脚本文件内容#!/bin/bashecho "hello world start"#根据脚本所在路径this_path=$(cd `dirname $0`;pwd)#列出时间current_date=`date +"%Y-%m-%d"`cd $this_pathecho $thi..
2021-02-19 10:29:20 314
原创 jmeter:压力测试工具
下载地址:https://mirrors.bfsu.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.tgz使用:1、下载解压后直接就可以用,要求配置java环境变量,java版本最低需要1.82、直接双击bin目录下的jmeter.bat3、双击打开后会弹出GUI界面(这张图是创建了一个web测试任务后的界面,新打开的话是没有的)4、如果想用中文的话,可以到Options->Choose Language->Chine
2021-01-21 17:13:08 371
原创 idea安装统计代码行数插件Statistic
1、点击File->Settings2、找到Plugins,然后点击Browse repositories,输入你要安装的插件名称Statistic,因为我已经安装过了,所以提示的是Update,没有安装过的话是Install。我idea的版本是2018.2.1,之前都是搜出来直接安装,每次安装好后,都找不到入口。所以大家一定要看清楚插件的介绍,是因为我的idea版本低,而插件的版本太高,所以我在插件介绍下边找到网址下载下了版本低的插件3.4到本地,然后点击Install plugub fro
2020-10-12 10:04:06 742
原创 java虚拟机详解(JVM)
1、(1)基本概念JVM是可运行java代码的假想计算机,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆和一个存储方法域。JVM是运行在操作系统之上的,它与硬件没有直接的交互。(2)运行过程我们都知道java源文件,通过编译器,能够生产相应的.class文件,也就是字节码文件,而字节码文件又通过java虚拟机的解释器,编译成特点机器上的机器码。也就是如下:java源文件-->编译器-->字节码文件字节码文件-->解释器-->机器码每
2020-09-14 18:09:44 564
原创 Linux中配置openJDK环境变量
领导给的服务器上只有openJDK,而且只有jre环境。只配置openJDK的jre环境:JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jrePATH=$PATH:$JRE_HOME/binCLASSPATH=.:$JRE_HOME/lib/rt.jarexport JRE_HOMEexport PATHexport CLASSPATH全的openJDK配置:JAVA_HOME.
2020-07-28 18:20:50 3391
原创 解决双机热备定时器同时执行两次的问题(ShedLock的springboot配置及关键理解)
github源码地址:https://github.com/lukas-krecan/ShedLock简介ShedLock确保计划的任务最多同时执行一次。如果一个任务正在一个节点上执行,则它会获得一个锁,以防止从另一个节点(或线程)执行同一任务。请注意,如果一个任务已经在一个节点上执行,则在其他节点上的执行不会等待,只是将其跳过。ShedLock可以使用Mongo,JDBC数据库,Redis,Hazelcast,ZooKeeper或其他外部存储进行协调。需要注意的是,ShedLock不是分布
2020-07-09 16:45:24 1419
原创 Nginx的安装和各种配置实例
1、Nginx概述Nginx是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强。有报告表明能支持高达50000个并发连接数。2、反向代理(1)正向代理在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网的访问(2)反向代理我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器,获取数据后,再返回给客户端。此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器ip地址3、负载均衡单个服务器解决不了,
2020-07-08 16:14:31 622 1
原创 制作一个可执行的jar包(非springboot,普通maven项目)
其实,制作一个可执行的jar包主要就是pom的一些配置,之后打包执行都跟springboot类似我们首先创建一个普通的maven项目,接下来看一下pom的配置<build> <!-- 最终达成jar包的名字,最好还是配置一下,简单明了,否则默认的有点儿长 --> <finalName>copy-product</finalName> <plugins> <plugin>
2020-06-29 16:29:09 1207
原创 java执行shell命令
因为有大量的文件需要复制,又要求时效性,所以尝试用java执行Linux复制命令。部分代码是直接网上拿过来的,具体出处忘记了,所以没法给出链接!直接上代码。。。public int copyFile(String sourceDirectory, String distributeProductPath){ //根据api,其实exec方法可以直接执行命令,但是推荐用数组。 //因为如果一些命令中包含特殊符号,命令会失效。经过测试如果直接执行复制命令, //目录可以复制过来,但
2020-06-29 15:58:34 928
原创 gitlab修改密码后无法pull的解决方法
在登录gitlab的时候发现密码忘记了,在重新设置了密码之后,git无法pull代码,需要改windows下的凭据管理器中对应gitlab地址的凭据密码把密码修改成你的新密码如果内容对大家有所帮助,感谢鼓励!实现我小时候一人给我一块钱的美梦,哈哈!...
2019-11-14 19:19:51 2287
原创 前端一些时间的处理
格式化时间:letymd=''letmouth=(time.getMonth()+1)>=10?(time.getMonth()+1):('0'+(time.getMonth()+1))letday=time.getDate()>=10?time.getDate():('0'+time.getDate())y...
2019-11-14 19:14:34 647
原创 拦截器处理Token
拦截器处理Token:package cn.cnic.xiandao.commons.filter;import cn.cnic.xiandao.util.ApplicationContextProvider;import cn.cnic.xiandao.util.RedisUtil;import org.springframework.web.method.HandlerM...
2019-11-12 13:04:50 3327
原创 线程池的简单应用
线程池的应用:List<String> fileList = new ArrayList<>();//创建线程池ExecutorService executeService = Executors.newCachedThreadPool();//taskList为任务集合,GetProductAndFileCallable为实现了Callable的任务类...
2019-11-12 13:01:30 240
原创 第一次写JPA简单总结
之前从来没用过jpa,它就是一个对hibernate的一个封装,个人觉得不好用,也许是用不惯依赖:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId><...
2019-11-12 12:41:17 245
原创 项目部署关于redis、JDK、Apache的安装配置
1、项目部署前redis的准备(1)检查是否安装了redis whereis redis-cli //检查是否有redis客户端 whereis redis-server //检查是否有redis服务端 ps -ef|grep redis //查看进程,看是否有redis在运行(2)安装redis 启...
2019-11-11 19:35:47 321
原创 poi-tl实现word文档按模板下载
poi-tl是对poi很好的一个封装,用起来相对来说也更加简单,将git的地址记录一下,方便大家去看源码和文档https://github.com/Sayi/poi-tl我们的项目是前后端分离的,前端vue,后端springboot,springCloud前端:前端的话很简单,window.open("后端访问地址");请求到下载的后端方法后端:后端的话首先我们需要引入相...
2019-10-08 19:04:29 1283
原创 使用Ribbon实现客户端侧负载均衡
在生产环境下,一般微服务都会有多个实例,那么服务消费者如何将请求分摊到不同的实例呢?比如我们的用户微服务有俩个实例,那么电影微服务怎么讲请求比较均匀的分摊到俩个用户微服务呢?总不能一直去请求同一个吧!Ribbon简介Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP客户端的行为。Ribbon配置服务提供者的地址后,Ribbon会根据它自己的负载均衡算法去为我们分配我...
2019-08-06 19:15:31 392
原创 微服务注册与发现
上一篇我们讲了服务消费者去调用服务提供者,但是最后我们发现了一个问题,那就是对于请求地址的硬编码,那么我们接下来就学习Eureka这个服务发现组件。它有着强大的服务发现机制,服务消费者利用这种机制来获取服务提供者的网络信息,即使是服务提供者网络信息发生了变化,服务消费者也不需要修改自己的配置,这就解决了硬编码的问题。服务提供者、服务消费者和服务发现组件的关系图:服务提供者将自己的信息注...
2019-08-05 19:38:33 318
weka连接mysql数据库,完美修改配置(java代码)
2021-10-15
smsniff抓包工具
2020-08-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人