自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 日志打印设计

日志设计

2022-12-15 17:27:06 164 1

原创 Linux运维常用命令

Linux运维常用命令。

2022-08-04 10:06:48 307

原创 Oracle 数据库表结构 Excel 导出

Oracle 表结构,结果集导出 CSV 格式

2022-06-29 10:15:01 924

原创 JAVA数据加密

哈希算法中最著名的当属MD5算法,MD5算法生成的信息摘要只有128位,数据加密后是不可逆的,常用来加密用户密码2.对称加密算法最为流行的对称加密算法是AES算法,对称算法的好处是加密解密的效率比较高。对称算法的缺点是不够安全。对称加密算法密钥是相同的,只要密钥泄露出去,通信的密文就会被破解。3.非对称加密算法RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。非对称加密中存在一对密钥,一个叫做公钥,一个叫做私钥。在加密解密的过程中,可以使用公钥加密明文,私钥解密密文;也

2022-06-22 23:24:57 1365

原创 RestTemplat发送HTTP请求

RestTemplate发送请求

2022-06-16 18:13:49 2308

原创 JAVA应用层限流

限流中提到的阈值拒绝策略两个概念阈值:在一个单位时间内允许的请求量。如 QPS 限制为10,说明 1 秒内最多接受 10 次请求。拒绝策略:超过阈值的请求的拒绝策略,常见的拒绝策略有直接拒绝、排队等待等。一种简单方便的限流算法。通过一个支持原子操作的计数器来累计 1 秒内的请求次数,当 1 秒内计数达到限流阈值时触发拒绝策略。每过 1 秒,计数器重置为 0 开始重新计数。测试2. 滑动计数器算法滑动计数器算法为解决计数器算法遇到时间窗口的临界突变时,会发生qps突增,如 1s 中的后 500 m

2022-06-10 22:00:00 219

原创 SpringBoot 参数 trim 处理

基于以上场景这里使用 Filter 去掉参数值的前后空格2. 新建参数过滤器RequestTrimHttpServletRequestWrapper 请求参数包装器

2022-06-08 18:22:42 3462 1

原创 BigDecimal精度丢失处理

精度丢失处理String、int 不会丢失精度,将double,float转成String再计算可以避免精度丢失问题

2022-06-01 22:15:00 2879

原创 JAVA多线程编程之异步

日常开发中我们在一个接口中需要处理多个任务,通常都是串行的,这样导致接口的响应时间是每个任务的执行时间的总和。为了缩短响应时间,通常会使用异步处理多任务。需求举例:查询书籍基本信息,书籍详细信息,作者信息并将结果数据返回。假设查询书籍基本信息花费500毫秒,查询书籍详细信息花费500毫秒,查询作者信息花费500毫秒,共计1500毫秒,使用异步处理时间一般都是远小于1500毫秒的。下面使用异步调用方式优化接口1、异步任务类实现 Callable 接口,用来处理带返回结果的任务。taskId 用来.

2022-05-29 10:32:45 5383

原创 Spring事务隔离级别与传播行为

org.springframework.transactionpublic interface TransactionDefinition定义符合 Spring 的事务属性的接口。基于类似于 EJB CMT 属性的传播行为定义。‎‎注意,除非启动实际的新事务,否则不会应用隔离级别和超时设置。‎ ‎仅‎ PROPAGATION_REQUIRED, PROPAGATION_REQUIRES_NEW and PROPAGATION_NESTED ‎可能导致这种情况,在其他情况下指定这些设置通常没有意义。此外

2022-05-16 19:15:00 1751

原创 Spring Cache 缓存

spring框架支持透明地向现有的Spring应用程序添加缓存

2022-05-12 18:51:08 572

原创 JVM 垃圾收集器选择

垃圾回收性能有吞吐量和占用空间两个主要度量标准。吞吐量:吞吐量是长时间未在垃圾回收中花费的总时间的百分比。吞吐量包括在分配中花费的时间(但通常不需要调整分配速度)和应用程序由于发生垃圾回收而出现无响应的时间。占用空间:占用空间是进程的工作集,以页面和缓存行为单位进行度量。在物理内存有限或进程较多的系统上,占用空间可能决定了可伸缩性。及时性是对象失效和内存变为可用之间的时间,是分布式系统(包括远程方法调用 (RMI))的一个重要考虑因素。官方文档地址垃圾收集器类型串行收集器串行收集器使用单个.

2022-05-05 18:49:10 1949

原创 MySQL索引失效

环境:mysql-5.7.28环境准备-- 查看版本select version();

2022-05-04 17:22:59 648

原创 JAVA数据脱敏

为了保护用户隐私,需要对敏感信息进行脱敏处理,如:姓名、电话号码、身份证基于jackson,通过自定义注解的方式实现数据脱敏添加依赖spring-web、spring-boot-starter-web已经集成了jackson相关包,不用添加<!--jackson依赖--><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jack.

2022-04-27 15:01:24 8252 3

原创 JAVA HTML 转 PDF

JAVA 通过 itext,wkhtmltopdf 等,将 HTML 转成 PDF。这里通过 wkhtmltopdf 实现htmlHTML转PDFwkhtmltopdf 是一个开源的,使用Qt WebKit 渲染引擎,把 html 转换为 pdf 文件的命令行工具。wkhtmltopdf官网地址wkhtmltopdf下载下载地址:https://wkhtmltopdf.org/downloads.html根据系统选择相应的版本这里以Linux为例:版本:wkhtmltox-0.12.

2022-04-25 15:40:03 3047

原创 JAVA实现JWT

JWT介绍详情访问官网https://jwt.io/JWT是什么JSON Web Token(JWT)是一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间作为JSON对象安全地传输信息。此信息可以验证和信任,因为它是经过数字签名的。JWT可以使用密钥(使用 HMAC 算法)或使用 RSA 或 ECDSA 的公钥/私钥对进行签名。虽然 JWT 可以被加密以在各方之间提供保密性,但我们将重点关注签名令牌。签名令牌可以验证其中包含的声明的完整性,而加密令牌会对其他方隐藏这些声

2022-04-24 17:09:18 1850

原创 Stream API 优化代码

使用Java8中新特性Lambda表达式和流申明式处理数据集合,让代码更简洁使用一个简单的员工类来学习使用方法public class Employee { /** * 姓名 */ private String name; /** * 年龄 */ private int age; /** * 薪资 */ private double salary; /** * 部

2022-04-21 10:09:56 358 1

原创 spring-retry失败重试

spring-retry实现重试功能POM 依赖启用Retryable在需要重试的方法上添加@Retryable注解@Retryable参数@Recover注意事项spring-retry官网地址在实际开发中,我们可能有重试的需要。这里使用springboot集成spring-retry实现重试功能如: 1、网络波动需要,导致请求失败,需要重发。        2、发送消息失败,需要重发,重发失败要记录日志      &nbsp

2022-04-19 18:28:21 726

原创 集合转树json

集合转树json

2022-04-10 09:12:36 231

原创 SpringBoot整合RocketMQ

项目环境jdk:1.8rocketmq:4.5.1springboot:2.6.3引入依赖<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.2.0</version></dependency>

2022-02-18 18:24:47 458

原创 RocketMQ环境搭建

下载RocketMQ版本:4.5.1 下载地址环境Linux64位系统JDK1.8(64位)安装上传二进制包到/usr/local/rocketmq目录解压 unzip rocketmq-all-4.5.1-bin-release.zip -bash: unzip: 未找到命令yum install -y unzip zip解压目录bin:启动脚本,包括shell脚本和CMD脚本conf:实例配置文件 ,包括broker配置文件、logback配置文件等lib:依赖ja

2022-02-17 17:57:14 2080

原创 通用jvm工具

标题通用jvm工具jps:虚拟机进程状态工具示例: jps -v | grep pidjinfo:jvm参数信息工具示例:jinfo -flags pidjstat:查看虚拟机各种运算状态示例:jstat -gcutil pidS0:新生代中Survivor space 0区已使用空间的百分比S1:新生代中Survivor space 1区已使用空间的百分比E:新生代已使用空间的百分比O:老年代已使用空间的百分比M:元数据区已使用空间的百分比CCS:压缩类空间利用率百

2022-02-16 10:49:20 539

原创 设计模式之组合模式

组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。从设计的角度看,组合模式涉及到三个角色:抽象根节点:它是一个抽象接口,定义了算法;具体节点:实现或继承自抽象根节点,完成具体算法操作;客户端:客户类提出使用具体类的请求;示例以餐厅为例,餐厅有餐厅经理,厨师,服务员等员工,每一个员工都要工作,餐厅经理管理员工,可以将所有员工都设置为经理属性。新建员工基类public

2021-09-29 13:48:46 169

原创 Nginx限流

Nginx限流示例配置指令无延迟的排队开启dry运行模式设置所需的记录级别设置状态代码以响应被拒绝的请求返回设置共享内存区参数官方文档ngx_http_limit_req_module模块,用于限制每个定义密钥的请求处理率,特别是来自单个 IP 地址的请求的处理率。限制是使用"漏水桶"方法完成的。示例配置http { limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; ... server {

2021-09-28 11:04:45 376

原创 SpringBoot中集成参数校验

SpringBoot中集成参数校验引入依赖自定义参数校验创建自定义注解自定义校验逻辑在校验对象的属性上加上注解分组校验定义分组接口在UserVO对象参数分配分组在需要参数校验的方法指定分组SprinBoot集成参数校验Validator,以及参数校验的高阶技巧。Validator校验框架遵循了JSR-303验证规范(参数校验规范), JSR是Java Specification Requests的缩写。在接口开发中,为了防止非法参数对业务造成影响,需要对接口的参数做校验,例如登录的时候需要校验用户名密

2021-09-28 11:01:17 430 1

原创 Linux 进程在后台运行

nohup可以将程序以忽略挂起信号(SIGHUP)的方式运行& 命令是命令放在后台执行,需要放在命令的最后面后台运行,关掉终端停止运行command &后台运行,关掉终端继续运行nohup command &默认输出都被重定向到nohup.out的文件中nohup ./test.sh &标准输出与标准错误输出重定向注:2>&1 标识,标准错误输出重定向等同于标准输出重定向,即标准错误输出也重定向到文件test.log;nohup ./t

2021-09-27 13:50:06 122

原创 JMeter并发测试

建立Web测试计划模拟1000个用户发送1个请求,运行1次 1000 x 1 x 1 = 1000个HTTP请求。需要用到的元素 Thread Group, HTTP Request, HTTP Request Defaults, and ‎Graph Results.‎。添加用户组在线程池组中设置用户数量、请求的频率、请求数量Edit→ Add→ Threads(Users)→ Thread group[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-39u0UmXl

2021-09-27 11:13:28 250

原创 Elasticsearch密码验证

es7.0版本安装包带了xpack功能修改配置在elasticsearch.yml添加如下配置xpack.security.enabled: true#加密方式xpack.license.self_generated.type: basicxpack.security.transport.ssl.enabled: true重启es以后台方式运行./elasticsearch -d设置密码./elasticsearch-setup-passwords interactive根据提

2021-08-20 16:52:44 397

原创 Elasticsearch安装

下载Elasticsearch官网下载地址 https://www.elastic.co/cn/downloads/elasticsearch这里以CentOS7系统elasticsearch-7.14.0为例点击版本号下载Linux-elasticsearch-7.14.0安装将elasticsearch-7.14.0-linux-x86_64.tar.gz压缩包上传至安装目录 /usr/local/elastic并解压tar -zxvf elasticsearch-7.14.0-linux-

2021-08-20 15:33:14 3501 1

原创 Linux用户管理

1、使用root账号登录Linux系统用户管理1、创建一个名为dev的组groupadd dev2、在dev组下创建zhangsan用户useradd -g dev zhangsan3、设置zhangsan的用户密码passwd zhangsan4、删除用户userdel -r zhangsan文件授权1、将/home/study目录交给zhangsan管理,将study文件夹放到张三的目录下cp -r /home/study/* /home/zhangsan2、查看文件

2021-08-19 10:55:14 301

原创 Docker安装MySQL

Docker安装MySQL拉取镜像创建MySQL容器卸载MySQL容器拉取镜像MySQL 镜像库地址:https://hub.docker.com/_/mysql?tab=tags通过 Sort by 查看其他版本的 MySQL,默认是最新版本 mysql:latestdocker pull mysql:5.7创建MySQL容器#创建容器内在本地的映射文件夹mkdir -p /root/mysql/data /root/mysql/logs /root/mysql/conf#安装dock

2021-05-07 10:20:36 71

原创 Jenkins自动化部署

Jenkins+Gitee+Maven部署jar应用

2021-05-05 23:26:59 1188 10

原创 Jenkins集成Maven

Jenkins集成Maven安装Maven配置环境变量修改Maven配置settings.xml全局工具配置关联JDK关联mavenJenkins全局变量测试Maven配置是否成功安装Maven上传maven到服务器(下载地址http://maven.apache.org/download.cgi)#解压tar -xzf apache-maven-3.6.2-bin.tar.gz #创建目录mkdir -p /opt/maven #移动文件mv apache-maven-3.6.2/* /o

2021-05-05 22:46:04 615

原创 CentOS安装Jenkins

CentOS安装Jenkins安装JDK下载jenkins安装包安装启动重启Jenkins卸载安装JDKJenkins需要安装java环境yum install java-1.8.0-openjdk* -y安装后目录/usr/lib/jvm下载jenkins安装包下载地址:https://www.jenkins.io/zh/download/我这里下载的是 jenkins-2.190.3-1.1.noarch.rpm( 建议下载最新版本)将下载后的安装包上传服务器安装rpm -ivh

2021-05-02 20:53:22 196

原创 Docker部署SpringBoot项目

使用Dockerfile制作微服务镜像1.上传user的服务jar到Linux2.编写Dockerfilevi DockerfileFROM openjdk:8-jdk-alpineARG JAR_FILECOPY ${JAR_FILE} user.jarEXPOSE 8088ENTRYPOINT ["java","-jar","/user.jar"]3.构建镜像docker build --build-arg JAR_FILE=user-0.0.1-SNAPSHOT.jar -t

2021-04-30 17:45:45 130 1

原创 CentOS安装Docker

官方安装文档前提条件操作系统要求要安装Docker Engine,您需要一个CentOS 7或8的维护版本。不支持或未测试存档版本。该centos-extras库必须启用。默认情况下,此存储库是启用的,但是如果已禁用它,则需要 重新启用它。overlay2建议使用存储驱动程序。使用存储库安装在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。设置存储库安装yum-utils软件包(提供yum-config-manager

2021-04-28 15:41:36 145

原创 TestNG测试

TestNG是一个受JUnit和NUnit启发的测试框架详情参考https://testng.org/doc/maven坐标<dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.0.0</version></dependency><!-- 测试报告样式美化

2021-04-24 15:04:06 307

原创 API接口安全

token被劫持,DOS攻击,重复提交等,接口安全尤为重要,接口安全主要围绕Token、Timestamp和Sign三个机制展开设计,保证接口的数据不会被篡改和重复调用。Token授权token是客户端访问服务端的凭证。用户通过账号密码登录后,服务器返回token给客户端,并存储在缓存中,服务器接受到请求后进行token验证,如果token不存在说明未登录,时间戳超时时间戳超时机制是防御DOS攻击的有效手段。每次请求都带上当前时间的时间戳timestamp,服务端接收到timestamp后跟当前时间

2021-04-19 22:30:44 663 1

原创 API接口防刷

API接口防刷接口防刷的优点新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入接口防刷的优点如短信接口被请求一次,会触发几分钱的运营商费用。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的M

2021-04-16 17:16:16 210

原创 JAVA池化技术

池化技术定义池的功能具体实现那些创建时间长,需要大量资源,创建后可重复使用的对象,这类对象往往是比较消耗资源的,为了节省资源开销,可以把对象缓存起来,需要的时候拿出来用,提高资源利用率常见的有线程池、数据库连接池等定义池的功能public interface ImgClientTool { //初始化 void init(); //销毁 void destroy(); //获取连接 ImgClient getConnection();

2021-02-04 22:54:52 237

空空如也

空空如也

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

TA关注的人

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