- 博客(71)
- 资源 (1)
- 收藏
- 关注
原创 java1.8项目纤程实战和性能压测
为了实现类似于线程池的功能,想在一个批量处理的过程中,开多个纤程处理,在统一获取结果,然后继续主线程执行,场景相当多。pom.xml中引入纤程的坐标依赖。新建一个maven依赖项目。测试controller。jmeter压测参数。
2023-04-24 09:08:24
460
原创 springboot下的用户上下文和拦截器
兄弟们,你是否见过,很多项目或者框架中在项目的任何位置,都可以通过上下文或者某些util直接获取贯穿整个请求的对象,比如用户对象,例如在你任意的代码里,直接调用 SecurityUtil.getCurrentUser();就可以得到当前登录的用户信息,简单,快捷,随用随取,那叫一个方便,下面让老王带你一探究竟其实就是在程序的入口获取到用户信息,并且把用户信息存的ThreadLocal中...
2022-07-08 16:50:01
2090
原创 springboot+logback日志来发送异常信息邮件
系统异常了,上篇是通过在全局异常中通过调用发送邮件的处理器代码进行邮件的发送,总是觉得还不那么优雅这篇是通过扩展 logback 的日志插件来处理 err 级别的日志异常信息来发送邮件的通过这篇的学习,可以掌握如何扩展 logback 的日志类,来实现自己不可告人的目的。...
2022-07-08 16:47:23
1215
2
原创 springboot+freemarker+email实现异常邮件通知
在我们的项目中,总是有一些我们不可控制的异常,比如数据库连接不上,redis挂掉,以及一些代码上未可知的异常爆发,不能在项目上线时就可以统计出来,并且修复,所以当我们这些bug抛出异常时,或者在某些可控的严重异常需要推送邮件或者短信或者其他的通讯工具比如 钉钉或者飞书等,我们就需要这样的功能,这里提供一个邮件通知方法,当有未知异常或者被定义为严重异常的,就会给运维人员发送一个邮件进行通知,方便计时应对和问题定位。在springboot中的全局异常捕获处,对不可控异常拿到异常栈信息,进行异常msg的组装和通知
2022-07-08 16:43:18
24513
原创 gcview对gc文件的分析教程
gcview对gc文件的分析教程,帮助我们分析项目中jvm虚拟机的健康状态,以及如何去调优,让我们的项目更快,用户体验更好
2022-06-06 17:29:41
1830
原创 高质量java常用util类
java使用工具类,这些其中的一个类,或许你也有,但是里面有很多是自己扩展的,功能相对丰富和各个场景的功能封装,相对齐全,希望有好的东西一起分享,评论区见
2022-06-06 17:23:05
1604
原创 linux环境部署 prometheus + grafana + nacos对微服务监控
linux环境部署 prometheus + grafana + nacos对微服务监控
2022-06-06 15:03:38
1760
4
转载 IPFS综述
1. IPFS工作原理IPFS是一个P2P存储网络。内容可通过位于世界任何地方的对等点访问,这些对等点可能会传递信息、存储信息或两者兼而有之。IPFS知道如何使用它的内容地址(CID)来找到相关的内容,而不是基于它的位置。IPFS有三个基本原则:1)通过内容寻址(内容标识符)进行唯一标识;2)通过有向无环图链接内容(文件的内容);3)通过分布式哈希表发现(多地址)内容;这三个原则相互建立,以实现IPFS生态系统。让我们从内容寻址和内容的唯一标识开始。1.1内容寻址IPFS使用内
2022-04-21 14:51:14
1153
1
转载 Redis 的底层数据结构
Redis 的底层数据结构一、redis快速的原因:1、在内存中进行操作 2、高效的数据结构底层数据结构一共有 6 种,分别是简单动态字符串、双向链表、压缩列表、哈希表、跳表和整数数组。它们和数据类型的对应关系如下图所示:1.Redis使用一个哈希表保存所有键值对,2.哈希桶中的元素保存的不是值的本身,而是指向具体元素的指针具体元素都是RedisObject哈希冲突解决a:Redis的hash表是全局的,所以当写入大量的key时,将会带来哈希冲突,已经......
2022-03-31 09:52:52
3768
2
原创 redis扩容的rehash过程
在扩容和收缩的时候,如果哈希字典中有很多元素,一次性将这些键全部rehash到ht[1]的话,可能会导致服务器在一段时间内停止服务。所以,采用渐进式rehash的方式,详细步骤如下:为ht[1]分配空间,让字典同时持有ht[0]和ht[1]两个哈希表 将rehashindex的值设置为0,表示rehash工作正式开始 在rehash期间,每次对字典执行增删改查操作是,程序除了执行指定的操作以外,还会顺带将ht[0]哈希表在rehashindex索引上的所有键值对rehash到ht[1],当rehas
2022-03-24 11:29:56
2618
原创 springboot的web和openfeign的json的字符串时间互转的序列化和反序列化
场景描述:前端入参的时间格式是字符串,ex:"createTime":"2022-03-08"或者 "createTime":"2022-03-08 16:03:50",后端接受的是Date类型,jackson会报反序列化异常,这是正常现象,正常思路是要求前后端安装约定参数名和参数类型来交互的,,前端不配合,后端只能脱裤子妥协了,我们兼容你们前端的任性,还有全局返回的时间格式也统一是字符串,来下面开始就是请求的时间格式是"createTime":"2022-03-08 16:03:50",响应的
2022-03-09 10:43:03
2310
1
原创 Linux和windows下minio+springboot实现文件服务器上传下载和nginx反向代理
Linux和windows下minio+springboot实现文件服务器上传下载和nginx反向代理
2022-02-26 16:55:47
4449
2
转载 SpringBoot 内置工具类
断言 断言是一个逻辑判断,用于检查不应该发生的情况 Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启 SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查 // 要求参数 object 必须为非空(Not Null),否则抛出异常,不予放行// 参数 message 参数用于定制异常信息。void notNull(Object object, String message)// 要求参
2022-01-21 09:26:39
504
原创 java版手写对称加密算法(阉割版)
核心就是异或运算异或运算详解 异或运算是二进制数按位做异或运算再赋值,其运算规则是: 0^0=0; 0^1=1; 1^0=1; 1^1=0 即:如果两个相应位为“异”(值不同),则该位结果为1,否则为0。 同与运算相同,参与异或运算的两个操作数,位数必须相同,也就是数据类型必须相同。不同类型的数据做与运算,需要强制转换为同一类型。 例如:数据类型同为int的数值8和14异或运算的结果是6,下图给出了异或运算过程,int类型的数据是16位,因为高8位都...
2022-01-09 14:09:41
580
原创 mysql主从复制(亲测能打)
1 安装mysql不说了,具体参照:linux下mysql5.7.22数据库解压版安装_王林冲的博客-优快云博客1、主从服务器分别作以下操作: 1.1、版本一致2、修改主服务器master:#vi /etc/my.cnf#在[mysqld]新增bin_log配置[mysqld]#开启bin_log 启用二进制日志log-bin=mysql-bin#服务器唯一ID,默认是1,一般取IP最后一段server-id=119binlog_for...
2021-12-24 10:11:28
170
原创 linux中shell脚本+定时任务实现日志按天切割
举例 : 切割nginx的日志vi runlog.sh#!/bin/bash# 设置日志文件存放目录logs_path="/var/log/nginx/"backup_path="/var/log/nginx/logs/"# 设置pid文件pid_path="/run/nginx.pid"# 重命名日志文件mv ${logs_path}/access.log ${backup_path}/access_$(date -d "yesterday" +"%Y%m%d").logmv
2021-11-17 15:02:50
3357
原创 linux下安装nacos2.0
1,下载nacos压缩包:Release 2.0.0-BETA (Feb 5th, 2021) · alibaba/nacos · GitHub2,再opt文件夹下新建nacos-2.0文件夹mkdir nacos-2.0现在成功后上传到linux服务器上2.找到nacos的mysql的数据库脚本,或者直接copy我的:/* * Copyright 1999-2018 Alibaba Group Holding Ltd. * * Licens....
2021-11-14 14:55:31
3695
原创 linux下mysql5.7.22数据库解压版安装
1 下载数据库压缩文件:下载地址:wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz2,进入mysql目录,由于5.7没有data目录,自己创建一个3,创建mysql用户和用户组groupadd mysqluseradd -r -s /sbin/nologin -g mysql mysql -d /opt/mysql-5.7-22..
2021-11-14 12:40:33
1213
原创 linux中安装tidb单机版本
安装tidb数据库在opt下新建一个tidb文件夹:cd /opt/mkdir tidbcd tidb1.下载压缩包安装tar包路径命令:wget http://download.pingcap.org/tidb-latest-linux-amd64.tar.gz命令:wget http://download.pingcap.org/tidb-latest-linux-amd64.sha2562.检查文件完整性命令:sha256sum -c tidb...
2021-10-21 11:00:40
2423
3
原创 window服务器 搭建ftp服务器
效果图:步骤1:控制面板 ->一直往下走选中ftp iis安装天机ftp创建站点名字和目录绑定本机IP地址,SSL勾选无SSL身份验证 -->匿名,授权 --> 所有用户,权限 -->读取写入关闭防火墙,不用一下操作---------------开启防火墙的需要配置(开始)--------------------控制面板 --> 系统和安全 --> Wind...
2021-07-09 11:58:58
1214
原创 springcloud之seata在微服务模块全局异常捕捉后导致事务不会滚优雅方案解决
springcloud之seata在微服务模块全局异常捕捉后导致事务不会滚优雅方案解决方案2可以在全局事务开启端拦截httpresponse 判断 ajaxVo的状态即可,采用手动回滚异常
2021-04-20 14:37:31
1842
原创 笔记本/台式机改造成centos7服务器 + 宝塔面板服务器磁盘挂载(亲测,能打版)
1 笔记本/台式机改造成centos7服务器 1.1 centos7操作系统ios镜像下载 官方下载地址:https://www.centos.org/download/ 下载完成后,copy到自己习惯的保存操作系统的文件夹下,我的是D盘下的文件夹:D://操作系统,你的随你的意,想存在哪里都行...
2020-12-28 15:49:39
1893
原创 windows安装Prometheus + Grafana
一:介绍Prometheus官网是这么介绍,一个最初在SoundCloud上构建的开源系统监视和警报工具包。Prometheus是一个完整的监控和趋势系统,包括基于时间序列数据的内置和主动抓取,存储,查询,绘图和警报。简单来说,我们可以用Prometheus来监控包括linux,window系统,nginx以及mysql的性能指标。Grafana,一个将数据可视化的软件,具有非常高大上的ui设计。所以采用Grafana作为Prometheus的可视化工具二:安装1 安装window采集.
2020-12-23 11:20:34
1085
原创 centos7安装elasticsearch5.6.7+ik分词器+head插件+kibana(3台服务器,数据外部挂载和ik分词器外部挂载),自己手搭
1 准备3台机器 服务器1 :192.168.2.89 服务器2:192.168.2.90 服务器3 :192.168.2.912 在每台机器上做好准备工作挂载数据data文件夹,配置文件config,和plugins文件夹[root@localhost soft]# pwd/root/soft[root@localhost soft]# mkdir -p ES/config[root@localhost soft]# cd ES [roo...
2020-05-22 18:00:14
856
转载 Nginx服务器高性能优化的配置方法小结
这篇文章主要介绍了Nginx服务器高性能优化的配置方法小结,包括一些内核参数的优化介绍,需要的朋友可以参考下通常来说,一个优化良好的 Nginx Linux 服务器可以达到 500,000 – 600,000 次/秒 的请求处理性能,然而我的 Nginx 服务器可以稳定地达到 904,000 次/秒 的处理性能,并且我以此高负载测试超过 12 小时,服务器工作稳定。这里需要特别说明的是,本...
2020-03-03 10:37:17
1003
1
原创 Windows上安装mongoDB 4.2 版本(亲测有效)
1.在官网下载最新的安装文件(我的是mongodb-xxx.msi)下载地址 :https://www.mongodb.com/download-center#community2 安装msi文件下载的msi安装包,双击即可,然后一路 ‘next’ ,碰到安装路径,可以根据自己的意愿lai'来选择,最好不要默认,因为默认是C盘下面是安装步骤,图片(自己的安装过了,不想x...
2019-12-16 17:02:44
5992
2
原创 IntelliJ IDEA中如何再次调出springboot的依赖窗口,随时可以根据喜好导入和移除插件
IDEA中如何再次调出springboot的依赖窗口,随时可以根据喜好导入和移除插件那么就需要安装一个IDEA的插件,实现想eclipse中随时勾选取消springboot或者springcloud的插件引用。这个插件就是Edit Starter一 安装(其实没必要写,写是因为,我的态度,细节认真)1 打开IDEA ,点击Settings,进入设置界面在下面的mark......
2019-10-13 00:27:02
7812
6
原创 Windows下安装elasticsearch7.4.0(最新)+Kibana+ik分词器(亲测好用)
安装elasticsearch版本要求,JDK1.8_73以上版本,可应通过Java -version来查询Java版本剩下的就很简单了,几部搞定,轻松easy!一 安装elasticsearch7.4.0,目前是最新版1 下载elasticsearch打开elasticsearch下载界面,下载elasticsearch7.4.0版本 地址:https://www.elas...
2019-10-12 12:30:21
3197
1
转载 synchronized和java对象关系详解和锁的膨胀流程
synchronized到底是怎么控制对象的,锁到是是怎么加的,怎么膨胀的(看明白就知道锁和Java对象到底是怎么回事了)一,首先我们先看下java对象有哪些组成,java对象是怎么和锁联系起来的1 Java对象有哪些组成的,java对象到底是个什么鬼?同步的原理JVM规范规定JVM基于进入和退出Monitor对象来实现方法同步和代码块同步,但两者的实现细节不一样。...
2019-09-19 22:47:02
459
转载 SQL优化的步骤流程
一、优化SQL的方法SQL优化的一般步骤:先查询mysql数据库运行状况,然后定位慢查询,再分析sql的执行过程,然后进行优化1.使用show status查询数据库的运行状况//显示数据库运行状态SHOW STATUS//显示数据库运行总时间SHOW STATUS LIKE 'uptime'//显示连接的次数SHOW STATUS LIKE 'connections'/...
2019-09-10 18:41:12
1252
原创 常用设计模式
代理模式什么是代理模式通过代理控制对象的访问,可以详细访问某个对象的方法,在这个方法调用处理,或调用后处理。既(AOP微实现),AOP核心技术面向切面编程。代理模式应用场景SpringAOP、事物原理、日志打印、权限控制、远程调用、安全代理可以隐蔽真实角色代理的分类静态代理(静态定义代理类)动态代理(动态生成代理类)Jdk自带动态代理Cglib 、ja...
2019-09-02 17:50:03
258
原创 HashMap
HashMap的实现原理?此题可以组成如下连环炮来问 你看过HashMap源码嘛,知道原理嘛? 为什么用数组+链表? hash冲突你还知道哪些解决办法? 我用LinkedList代替数组结构可以么? 既然是可以的,为什么HashMap不用LinkedList,而选用数组? 你看过HashMap源码嘛,知道原理嘛?针对这个问题,嗯,当然是必须看...
2019-08-23 20:21:49
257
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人