- 博客(109)
- 收藏
- 关注
原创 数据库分库分表
分库分表是一种数据库拆分技术,旨在通过将数据分散存储在多个数据库中,从而提高数据库的性能和扩展性。分库:一个大型数据库被分成多个较小的数据库,每个数据库被称为“分库”。分表:每个分库又被进一步分成多个表,每个表被称为“分表”。这种拆分可以在多个物理服务器上进行,也可以在同一台服务器的不同实例上进行。
2023-07-12 17:52:02
310
原创 Nginx配置汇总
协议中默认是采用了Nagle算法的,即在网络数据传输过程中,每个数据报文并不会立马发送出去,而是会等待一段时间,将后面的几个数据包一起组合成一个数据报文发送,但这个算法虽然提高了网络吞吐量,但是实时性却降低了。)都是利用文件描述符来访问文件,无论是打开、新建、读取、写入文件时,都需要使用文件描述符来指定待操作的文件,因此该值越大,代表一个进程能够操作的文件越多(但不能超出内核限制,最多建议。当缓存过多时,如果不及时清理会导致磁盘空间被“吃光”,因此我们需要一套完善的缓存清理机制去删除缓存,在之前的。
2023-07-12 17:29:08
4711
1
原创 正则表达式
上面介绍的只能每次匹配一个字符,如果要匹配多个字符,怎么办呢?假设我们要匹配任意字符,但不包括数字,可以写。匹配成功后,我们想提取区号和电话号码,分别存入数据库。我们可以这样做:先用。:正则表达式在Java代码中也是一个字符串,所以,对于正则表达式。大多数情况下,我们想要模糊匹配。的另一种用法,可以实现分组匹配。w的意思是word,可以匹配一个字母、数字或下划线。精确匹配一般用的比较少,我们直接通过。连接的两个正则规则是或规则,例如,这样的数字,可以用\d`匹配。,可以把公共部分提出来,然后用。
2023-07-12 17:10:29
1098
原创 Nginx常用日志分析
nginx中access.log 的日志结构:$remote_addr #客户端地址ip$remote_user #客户端用户名称$time_local #访问时间和时区$request #请求的URI和HTTP协议$http_host #请求地址$status #HTTP请求状态$upstream_status #upstream状态$body_bytes_sent #发送给客户端文件内容大小$http_referer #URL跳转来源$http_user_agent #用户终端
2023-07-12 09:07:30
283
原创 容器JVM内存配置
使用Java开发,且设置的JVM堆空间过小时,程序会出现系统内存不足OOM(Out of Memory)的问题。事件中心的OOM事件是指系统内存不足时,触发了Linux的内存回收(OOM Killer)机制,此时系统会终止内存占用较多的进程以保证系统的正常运行。特别是在容器环境下,不合理的JVM堆参数设置会导致各种异常现象产生,例如应用堆大小还未到达JVM设置的堆阈值或应用的规格限制,就因为OOM导致重启等。
2023-07-11 09:38:11
413
原创 Jasypt 数据库及中间件密码加解密
将加密后密码替换值yml文件ENC()括号内。三、修改application.yml。二、新增JasyptUtils工具类。
2023-07-04 16:05:15
1692
原创 SpringCloud整合Dubbo-RPC代替Feign
注意实现类添加服务提供者@DubboService!对外暴露dubbo服务。注意@DubboReference开启服务消费!服务启动的时候要先启动生产者服务,否则需要提供相应配置。一、将Dubbo集成至SpringCloud主要是替换Ribbo或者Feign实现远程调用。三、application.yml中添加配置。引入依赖版本是2.2.3RELEASE。
2023-07-03 17:54:08
829
原创 Redis各数据类型操作命令
使用 bitop not 命令,这里是将原有的为0的offset置为1,将1置为0,并将新的值放到新的bitmap中,这里需要特殊说明一下,bitmap的长度默认是8的倍数,因此当取反时后获取数量的话,获得的是大于原bitmap最大偏移量的最小的8的倍数减去原bitmap的数量。例如:为一个bitmap的23位设置位1,那么此时的bitmap长度默认为24(大于23的最小8的倍数),那么取反时,除了23位取反变成0之外,其余的23位全部由0变为1,那么新的bitmap取长度就是23。
2023-06-30 16:50:22
484
原创 ElasticSearch 8.0+ 版本Windows系统启动
内存问题,修改\elasticsearch-8.5.1\config\jvm.options文件。关闭密码:打开config 目录下面的 elasticsearch.yml 文件,把加密关闭。解压\elasticsearch\elasticsearch-8.5.1。进入bin目录,启动elasticsearch.bat。修改elasticsearch-env.bat文件。启动elasticsearch.bat成功。启动elasticsearch.bat。JDK问题,使用ES自带JDK。
2023-06-28 20:44:57
1382
原创 关键信息掩码处理
import org.apache.commons.lang.StringUtils;/*** 掩码处理*/public class MaskUtil { //身份证掩码规则 private final static String ID_CARD_MASK_REGEX = "(\\w{6})(\\w+)(\\w{3})"; //手机号掩码规则 private final static String MOBILE_MASK_REGEX = "(\\w{3})...
2021-10-13 09:40:41
698
原创 Spring Boot 接入支付宝完整流程
支付宝今年推出了新的转账接口alipay.fund.trans.uni.transfer(升级后安全性更高,功能更加强大) ,老转账接口alipay.fund.trans.toaccount.transfer将不再维护,新老接口的一个区别就是新接口采用的证书验签方式。使用新接口要将sdk版本升级到最新版本,最新版本是4.10.97。1.将支付宝开放平台里下载的3个证书放在resources下面2.写支付宝支付的配置文件alipay.propertiesalipay.appId=你的应用
2021-10-12 18:42:37
913
原创 日志脱敏处理
<?xml version="1.0" encoding="UTF-8"?><configuration scan="true" scanPeriod="60 seconds" debug="false"> <!-- 日志脱敏配置开始,format:SensitiveRulesEnum--> <property scope="context" name="SensitiveDataKeys" value='[ ...
2021-09-16 11:00:06
774
原创 通用Excel导出
import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;/*** Excel表头注解 */@Retention(RetentionPolicy.RUNTIME)public @interface ExcelField { /** * 标题 * @return 标题名称 */ String title(); /** ...
2021-09-16 10:32:36
220
原创 Jenkins+Git+Mevan+SpringBoot 构建
起初是不想每次都上传包,敲启停命令(其实就是多个sh脚本的事),同事王大神顺口说了一句搭个Jenkins多好,于是开启了一天的心酸之旅。先搜索了一下小神同志们的jiao'c
2021-05-29 01:30:38
267
1
原创 SpringBoot HTTP发送文件
/** * HttpPost请求发送 */public static String sendHttpDataFile(String sendContent, String url, Map<String, String> content, MultipartFile file) { log.info("接口请求地址--{}|接口请求报文--{}", url, sendContent); String result = ""; CloseableHt..
2021-04-21 14:39:30
980
原创 SpringBoot基于RateLimiter +AOP 动态 接口限流
<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId></dependency><dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId&g...
2021-04-13 19:44:32
368
原创 SpringBoot + Bootstrap + FileInput + Ajax 批量上传文件
HTML:<div class="row"> <div class="col-lg-12 col-md-5 col-xs-12"> <form id="formFile" class="form-horizontal" action="upload/insert" method="post" enctype="multipart/form-data"> <input type="hidden" id="comCo
2021-04-13 19:40:28
386
原创 Java 发送邮件
javax.mail<!-- 邮件服务 --><dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4</version></dependency>登录邮箱,在设置->权限中开启 POP/SMTP服务@Testpublic void se
2021-03-19 14:09:46
102
原创 SpringBoot + SpringBatch + Mybatis + Scheduled 定时任务数据批处理
pom文件:批处理包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-batch</artifactId></dependency>定时任务包<dependency> <groupId>org.quartz-scheduler</groupI
2021-03-02 19:01:43
2296
原创 四则运算
public class ArithmeticUtil { private static GroovyShell groovyShell = new GroovyShell(); private static Map<String, Script> scriptCache = new ConcurrentHashMap<>(); /** * 四则运算 */ public static BigDecimal getFormula.
2021-01-15 10:47:04
162
原创 RSA加密、解密、签名、验签的原理及方法
一、RSA加密简介 RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)。 二、RSA加密、签名区别 加密和签名都是为了安全性考虑,但略有不同。常有人问加密和签名是用私钥还是公钥?其实都是对加密和签名的作用有所混淆。简单的说
2020-11-26 14:43:48
189
原创 JAVA 数字开闭区间
public static void main(String[] args) { int start = 500; int end = 600; int start0 = 1; int end0 = 500; int start1 = 501; int end1 = 600; int start2 = 501; int end2 = 700; int start3 = 401; int end3 = 550; int start4 = 401; int en.
2020-11-03 16:52:34
1209
1
原创 Java - MultipartFile图片上传服务器,并且指定大小压缩
1 /*** 2 * 上传图片到服务器 并压缩 3 * 4 * @param myFile 文件 5 * @param request 6 * @return 7 */ 8 private Boolean UploadFile(MultipartFile myFile, int width, int height, HttpServletRequest request) { 9 Boolean..
2020-10-13 16:58:49
1921
原创 kaptcha验证码组件
一、简单的jsp-servlet项目1.添加jar包依赖如果你使用maven来统一管理jar包,则在工程的pom.xml中添加dependencyXml代码<!--kaptcha--> <dependency> <groupId>com.google.code.kaptcha</groupId> <artifactId>kaptcha</artifactId> <...
2020-10-13 16:55:10
175
原创 HTTP协议
HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六
2020-10-13 16:30:39
1133
原创 HTTP请求工具类
import lombok.extern.slf4j.Slf4j;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;import java.util.Map;@Slf4jpublic class Htt.
2020-10-13 14:37:52
91
原创 Excel单元格类型处理防止有计算公式
import org.apache.poi.ss.usermodel.*;public class ExcelUtil { // 解析带公式单元格 public static String getCellValue(Cell cell, FormulaEvaluator formulaEvaluator) { CellValue evaluateCell = formulaEvaluator.evaluate(cell); String cellVal.
2020-10-13 14:31:48
154
原创 时间工具类
import org.apache.commons.lang.StringUtils;import java.text.DecimalFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class DateTool {/** * 当前系统时间 yyyy-MM-dd HH:mm:s.
2020-10-13 14:26:46
226
原创 动态拼接SQL
import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Component;@Slf4j@Componentpublic class SqlMapperProvider { //新增 public String insert(BaseDto baseDto){ StringBuffer sBuffer = new StringBuffer(); sBuffer.
2020-10-13 14:16:07
158
原创 AES加密
import lombok.extern.slf4j.Slf4j;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;import java.io.IOExceptio.
2020-10-13 13:55:48
215
原创 JAVA 实现四则运算(含小数)
一、程序要求解析一般数学算式,实现简单的带括号的加减乘除运算。二、基本思路前面两篇介绍了直接解析字符串和用数组容器辅助解析的两种方式,这次再介绍最常用的解析算法——解析后缀表达式(逆波兰表达式)。三、逆波兰表达式及其得到算法1、逆波兰表达式也即后缀表达式,指的是不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则)。(摘自百度),既然没了运算符的优先规则,那么计算机解析起来自然容易的多。对于我们常...
2020-07-17 13:38:42
1206
原创 Spring事务的传播
PROPAGATION_REQUIRED 表示当前方法必须运行在事务中。如果当前事务存在,方法将会在该事务中运行。否则,会启动一个新的事务。PROPAGATION_SUPPORTS 表示当前方法不需要事务上下文,但是如果存在当前事务的话,那么该方法会在这个事务中运行。PROPAGATION_MANDATORY 表示该方法必须在事务中运行,如果当前事务不存在,则会抛出一个异常。PR...
2019-08-20 18:24:07
159
原创 Eureka 配置
Eureka包含四个部分的配置instance:当前Eureka Instance实例信息配置 client:Eureka Client客户端特性配置 server:Eureka Server注册中心特性配置 dashboard:Eureka Server注册中心仪表盘配置Eureka Instance实例信息配置Eureka Instance的配置信息全部保存在org.sprin...
2019-08-12 15:38:04
222
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人