自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 资源 (1)
  • 收藏
  • 关注

原创 mybatis开篇

最近工作不太忙,着手研究了下mybatis源码(目前正在学习中。。。)。看了部分,受益匪浅,向大家推荐<<Mybatis技术内幕>>,该书源码是基于mybatis3.4。贴上mybatis的架构图,书籍也是按照这种架构逐步分析的。...

2020-03-18 09:41:31 290

原创 关于服务端返回connection reset(read ECONNRESET)问题的思路

但是host参数也会带来相应的风险即host注入问题,通常服务端会检测Host值并做相应的处理来防范这种风险,因此当要访问的域名和Host中上送的域名不一致时也不能理解服务端响应connection reset错误了。背景:生产联调验收时,商户发送的http请求返回connection reset错误。通过postman向生产环境直接发起请求看是否成功返回--成功。2.telnet、curl命令看服务端是否成功返回--成功。查看整个报文请求(包括报文头和报文体),1.抓包看双方是否成功建立连接--成功。

2024-03-29 09:51:28 315

原创 国密算法篇

国密算法SM2是由国家密码管理局制定的一种非对称密码算法,包括SM2密钥交换、,国标 GB/T 32907 对 SM4 对称加密算法进行了详细描述。SM4 算法密钥长度。它基于椭圆曲线(ECC)密码理论,具有较高的。公钥加密(非对称加密,公钥加密,私钥解密),加解密速度较快,优于AES算法。效率(同RSA比较)

2024-02-28 14:26:09 201

转载 nginx location配置

正则匹配的先后顺序是:在配置文件中先出现的先匹配,匹配成功就不再匹配后面的正则表达式。优先级:(1)> (2) > (3) = (4)> (5)匹配,如果一个URI同时满足两个规则的话,匹配。的规则,如果符合就直接返回结果,否则继续匹配。同时出现的情况,仍然按照出现的顺序进行匹配。:匹配URI的前缀,并且后面的正则表达式。换言之,一个URI请求首先检查是否符合。:匹配正则表达式,大小写不敏感;:匹配正则表达式,大小写敏感;,最后就是正则表达式的匹配。的优先级是最高的,其次是。规则不匹配,那么就匹配。

2024-01-05 17:00:00 35

原创 linux应用日志定时清理脚本

服务器项目日志文件随着时间推移,文件数量和体积不断增大,占用磁盘空间。很多历史日志文件无实际价值,却需要人工日常维护。现通过定时任务方式自动清理历史日志文件,保持服务器磁盘空间占用在合理的水平。1.创建日志清理脚本log_clean_35.sh。2.创建清理任务日志clean.log。

2023-11-14 17:47:14 146

原创 Hystrix线程池问题

经定位发现,被调用服务中无对应的请求日志,继续通过日志查询确认是feign调用时出现服务降级,进入降级方法统一返回调用失败。我们知道,feign的调用链路中内置了hystrix逻辑,hystrix出现服务降级的情况有很多种,下图展示了服务降级的场景,从下图可知服务降级通常有三种原因。我们项目的实际情况是活动启动的瞬间并发高导致降级,这种降级只是部分请求的降级,故排除这种情况。1.基于feign的服务调用时,以服务名作为key值,为该key值创建一个线程池,默认大小为10,各个服务名的线程池相互隔离。

2023-05-03 11:22:32 928

原创 mysql数据迁移

mysql数据迁移。

2023-04-03 20:24:23 1705 1

原创 mysql索引

mysql索引。

2023-04-03 20:22:36 88

原创 myql innodb 锁机制

锁机制。

2023-04-03 20:20:33 199

原创 shell脚本下载sftp文件

shell脚本下载sftp文件

2022-12-20 09:27:50 3076

原创 nginx配置stream模块

nginx配置stream模块

2022-12-19 15:02:13 6846

原创 Maven Release Plugin插件

maven release plugin插件使用

2022-10-31 09:08:24 1504

原创 Maven版本管理

maven版本控制

2022-10-31 09:06:09 961

原创 Linux搭建Nexus私服

本文重要介绍了一下几个内容:1.linux中安装nexus,以及nexus中创建仓库,创建用户,创建角色,关联权限供实际项目中使用。2.如何从过个远程仓库中下载jar包(即项目中jar包可能来自于多个仓库),如何将项目发布到nexus仓库。3.如何实现svn主分支并行开发。4.maven release plugin 的使用完成自动版本控制。

2022-10-21 15:55:54 183

原创 mysql实践

mysql简单命令

2022-07-21 15:33:20 151

原创 RabbitMQ消费端消费能力不足,消息消费慢问题解决思路

rabbitmq常见问题处理

2022-06-08 15:17:59 6308 2

原创 ELK搭建

ELK主要用于日志记录,生产环境实战。

2022-03-24 10:41:07 285

转载 LINUX添加只读用户(查日志专用)

第一步:添加用户并设置能够在shell上使用的命令#1.创建用户和登录shelluseradd -s /bin/bash test#2.修改用户密码passwd test#3.创建用户shell执行命令目录(允许用户使用的命令保存在该目录下)mkdir /home/test/.bin#4.root修改用户的shell配置文件(只能root用户修改该文件)chown root. /home/test/.bash_profilechmod 755 /home/test

2022-03-15 18:55:51 3161 1

原创 Eureka集群配置

eureka作为注册中心,生产环境必须多节点部署,保证其高可用性。现以两台服务器来完成集群部署。 服务器A:172.16.21.34 服务器B:172.16.21.35方式一:使用ip形式完成。服务器A:172.16.21.34server: port: 7777spring: application: name: register #指定eureka客户端的登录账户 security: user: ...

2021-12-09 16:56:27 4567

原创 rabbitmq镜像模式部署

Rabbitmq镜像模式使用

2021-11-22 11:39:49 2238

原创 redis哨兵模式部署

redis哨兵模式部署(2个哨兵节点和1主1从服务)。

2021-11-15 18:55:41 1858

原创 oracle实践

一、空值判断,空值转换 使用is null、is not null,判断是否是空值。使用nvl(exp1,exp2)将空值转换为其他值。 exp1表示可能为空的字段,exp2表示转换成什么值。二、列转行 pivot 语法:select * from table pivot (聚合函数 for column in (‘常量值1’,’常量值2’)); 相当于对column字段进行分组处理,聚合函数为需要统计的字段值。sel...

2021-09-13 16:30:16 383

原创 设计模式总述

设计模式是面对特定业务场景时的一种开发套路。它源于生活,通常我们能找到相应的例证,但高于生活(抽象),它能解决一类问题。使用设计模式的根本目标是开发时尽可能遵循面向对象的设计原则,不可为了生搬硬套,一切随缘(重构/优化)。 常用的设计模式有23中,分为三大类,有创建型,结构型,行为型。类别 名称 描述 速记词 创建型 工厂方法模式 定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 创...

2021-08-26 10:59:51 147

原创 使用栈来实现队列

栈的特性是先进后出,队列的特性是先进先处。使用的两个栈,两次先进后出=先进先出。public class StackQueue { //数据的入口 private Stack<Integer> stackA = new Stack<>(); //数据的出口,在stackB为空的前提下,将stackA数据导入 private Stack<Integer> stackB = new Stack<>(); ...

2021-08-11 10:47:36 109

原创 LRU-最近最少使用算法

LRU:Least Recently Used也就是最近最少使用的意思,是一种内存管理算法,该算法最早应用于Linux操作系统。这个算法基于一种假设:长期不被使用的数据,在未来被用到的几率也不大。因此,当数据所占内存达到一定阈值时,我们要移除掉最近最少被使用的数据。 redis中的内存管理算法中也用到了LRU,LinkedHashMap中也对LRU进行的具体的实现。现在这里也进行简单的实现。...

2021-08-10 18:48:41 836

原创 抢红包算法

红包算法有很多,一般来说,需要满足的规则有以下几点: 1. 所有人抢到的金额之和要等于红包金额,不能多也不能少。 2. 每个人至少抢到1分钱。 3. 要保证红包拆分的金额尽可能分布均衡,不要出现两极分化太严重的情况。public class RedPackage { public static void main(String[] args) { RedPackage redPackage = new RedPa...

2021-08-05 17:14:42 1045

原创 位图bitmap

位图算法:bitmap是内存中连续的二进制位(bit)所组成的数据结构,位图算法主要用于对大量整数做去重和查询操作(交集、并集、差集)。因为使用的是位运算,因此性能也是很高的。 jdk中的BitSet就是位图算法的具体实现。public class BitSet implements Cloneable, java.io.Serializable { //一个long元素有64bit,需要移动6位 private final static int A...

2021-07-22 17:51:10 806

原创 寻找缺失的整数

位运算:如果一个问题能用到位运算,那么它的的运算性能可大大提升。场景一:在一个无序数组里有99个不重复的正整数,范围是1~100,唯独缺少1个1~100中的整数。如何找出这个缺失的整数? 问题分析:方法一,可双重遍历得到缺失值,时间复杂度为O(n^2)。方法二,可预先将全部的正整数放入到创建的map中,遍历数组时再删除map中对应的值,最后留下来的值即为确实的值。方法三,先将100内的正整数累加,再减去数组中的全部正整数。public class ...

2021-07-21 11:43:41 307

原创 如何实现大整数相加

给出两个很大的整数,要求实现程序求出两个整数之和。 将整数拆分成数组计算,这种思想在BigInteger中也有使用,数组中的一位可以存一个数字也可以存一个int值。BigInteger采用的是存一个int值,且使用位运算,效率能提到提升。public class BigNumberSum { public static void main(String[] args) { //给出两个很大的整数,要求实现程序求出两个整数之和,整数可能很大,超过lo...

2021-07-19 15:15:39 230

原创 删去k个数字后的最小值

依次求得局部最优解,最终得到全局最优解的思想,叫做贪心算法。public class RemoveKDigits { public static void main(String[] args) { //删去k个数字后的最小值 //等价于删除1个数字后的最小值,循环k次。 RemoveKDigits removeKDigits = new RemoveKDigits(); String num = "10023...

2021-07-19 13:41:41 111

原创 寻找全排列的下一个数

public class NearestNumber { public static void main(String[] args) { //寻找全排列的下一个数 如: //12345->12354 //12354->12435 //12435->12453 //对于一个整数来说,倒序排列时最大,顺序排列时最小 NearestNumber nearestNumber = new Ne.

2021-07-16 16:43:01 185

原创 jvm简单梳理

Java虚拟机一、Java内存区域1.内存区域分配及其作用:线程共享堆(Heap):内存中最大的一块,存放对象实例和数组,堆内存在物理上可以不连续,通过-Xms、-Xmx可以设置堆内存大小。-Xms:堆内存初始值,默认物理内存1/64-Xmx:堆内存最大值,默认物理内存1/4-Xmn:堆内存新生代大小方法区(Method Area/Non-Heap):存放类信息、常量、静态变量(static)等,通过-XX:MetaspaceSize -XX:MaxMetaspaceSize

2021-07-13 17:29:00 105

原创 jdk1.8简单梳理

匿名对象->Lambda表达式(必须是函数式接口)->方法引用1.方法引用:可以看作是Lambda表达式的简化形式。主要有三类:1)指向静态方法的方法引用2)指向任意类型实例方法的方法引用3)指向现有对象的实例方法的方法引用4)构造函数引用 (类名::new)2.流-Strem以声明式的方式处理数据集合流的定义:从支持数据处理操作的源(集合、数组或输入/输出资源)生成的元素序列流的特征:元素序列:流是元素序列,且只能被消费一次源:集合、数组或输入/输出资源,Arr

2021-07-13 17:21:04 140

原创 无序数组排序后的最大相邻差

public class MaxSortedDistance { public static void main(String[] args) { //无序数组排序后的最大相邻差 MaxSortedDistance maxSortedDistance = new MaxSortedDistance(); int[] array = {10, 11}; System.out.println(maxSortedDistance.getMa.

2021-07-09 17:55:09 174 1

原创 计数排序

计数排序适用于一定范围内的整数排序。在取值范围不是很大的情况下,它的性能甚至快过那些时间复杂度为O(nlogn)的排序。计数排序,理想情况下时间复杂度可为O(n),即每一个索引位只有一个元素。当数列最大和最小值差距过大时,并不适合用计数排序。当数列元素不是整数时,也不适合用计数排序。public class CountSort { public static void main(String[] args) { CountSort countSo...

2021-07-09 15:17:32 88

原创 判断一个数是否是2的整数次幂

public class IsPowerOf2 { public static void main(String[] args) { //判断一个数是否为2的整数次幂 IsPowerOf2 isPowerOf2 = new IsPowerOf2(); System.out.println(isPowerOf2.isPowerOf2(64)); System.out.println(isPowerOf2.isPowerOf2ForMet.

2021-07-09 11:41:15 80

原创 求两数的最大公约数

public class GreatestCommonDivisor { public static void main(String[] args) { GreatestCommonDivisor divisor = new GreatestCommonDivisor(); System.out.println(divisor.getForMethodOne(15, 25)); System.out.println(divisor.getForM.

2021-07-08 16:01:36 105

原创 最小栈的实现

实现一个栈操作,包含入栈push,出栈pop,获取最小值getMin三种方法。且这三种方法的时间复杂度均为O(1)。

2021-06-18 10:29:15 406

原创 判断链表是否有环

判断链表是否有环的解法有很多,下面归纳几种常见算法。判断链表是否存在环方法一:通过双循环遍历完成,外层循环从头结点开始遍历,对于遍历到一个新节点newNode,内层循环都要从头结点遍历到该新节点的上一个节点head。如果链表无环,则newNode和head永不相等,否则就会相等。时间复杂度为O(n^2)。public class LinkListCycle { public static class Node { private int data; pr

2021-06-15 19:21:35 7466 3

原创 快速排序

快速排序的算法思想是分治算法,分而治之,将对整体的排序转换成对部分的排序,当部分完成了排序,整体排序也就完成了。算法的时间复杂度为O(nlogn)。public class MyQuickSort { public static void main(String[] args) { //分治思想,分而治之 //从小到大排序 MyQuickSort myQuickSort = new MyQuickSort(); int[] arr

2021-06-11 10:42:35 69

微信点金计划_goldenplan.pdf

微信jsapi支付后跳转问题

2021-08-10

空空如也

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

TA关注的人

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