自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mybatis开篇

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

2020-03-18 09:41:31 411

原创 资金结算规则

D+1日结算D日6,8,12,20,23点到D+1日6,8,12,20,23点的交易;特点结算中D+1(6点)日切时间为6点。结算时间延迟半小时左右,如D+1(6点),结算时间约6:30。T结算T-1日14-24点间的交易。D结算D-1日14-24点间的交易。T+1结算T日0-24点间的交易。T+1结算T日0-24点间的交易。D+1结算D日0-24点间的交易。D+1结算D日0-24点间的交易。T结算T日0-14点间的交易。D结算D日0-14点间的交易。对私:D+1日6:00开始。

2026-08-25 16:17:28 173

原创 微信移动应用(App)、微信小程序、H5(含系统浏览器、App WebView、小程序web-view)之间跳转与跳回的方式总结

1.微信内 H5:微信内置浏览器打开的网页2.小程序 web-view H5:小程序里通过<web-view>加载的网页3.App WebView H5:App 自己内嵌 WebView 加载的网页4.系统浏览器 H5:Safari、Chrome 等外部浏览器打开的网页打开 App | 微信开放文档微信开发者平台文档1.App可以主动拉起小程序2.小程序只能在被App拉起后,才能“返回”到该App3.小程序无法主动打开或跳转到任何其他App。

2026-08-24 16:12:26 365

原创 借贷记账法

会员子账户:对于平台来说,“会员子账户”既是一个记录“欠会员多少钱”的负债科目,又对应着一个实际存放资金的银行账户(资产)。负债类(对会员的欠款)、资产类(平台持有的资金)1)担保消费时,客户下单支付后资金先到平台担保户100元,并由平台余额户承担手续费0.01元;案例:有账户体系:平台余额户、平台担保户、会员子账户;4)抽佣时,会员A账户通过平台抽佣0.01元到平台余额户。2)担保确认时,资金从平台担保户进入会员A账户100元;平台担保户:资产类(平台代管担保资金)平台余额户:资产类(平台自有资金)

2026-08-03 15:00:02 194

原创 mysql服务迁移

--set-gtid-purged=OFF: 如果你用GTID,这个参数在恢复时能避免冲突[reference:4]# --all-databases: 备份所有数据库[reference:3]# --routines: 导出存储过程和函数[reference:1]# --hex-blob: 以十六进制格式导出二进制字段,避免乱码。# --triggers: 导出触发器[reference:2]# --flush-logs: 备份后刷新日志,方便进行增量恢复。# --events: 导出事件调度器。

2026-05-22 11:33:21 183

原创 svn迁移及版本升级

目标服务器安装svn1.14版本(CentOS 7.9 默认yum源中的SVN版本是1.7,要安装1.14,需要先配置Wandisco的yum源)从 1.7 迁移到 1.14 并确保数据万无一失,最稳妥的方式是 “跨版本导出/导入” (dump/load) 方案。文件,导入到新创建的空仓库中(不能事先初始化任何内容),否则会造成冲突。目录下的内容不能自动迁移,需要手动复制或重新配置。一、停服与导出 (在老服务器上执行)三、数据导入 (在目标服务器上执行)#安装svn1.14版本。四、配置迁移与服务重启。

2026-05-19 16:28:43 479

原创 https安全机制

只有当这条链上的每一级证书都有效,且最后的根证书存在于浏览器的"受信任的根证书颁发机构"列表中时,浏览器才会信任你的服务器证书。如果中间证书不全(常见的配置错误),或者根证书不受信任(如自签发证书),验证就会失败,浏览器会给出安全警告。比如服务器可通过多种方式访问(test.pay.cn,a.pay.cn,122.224.1.1,10.48.1.1),生成自签发证书时san中指定的ip或域名为(test.pay.cn,122.224.1.1)。服务器证书通常不是根CA直接签发,而是由"中间CA"签发的。

2026-03-03 15:44:00 684

原创 Http状态码梳理及出现的场景(持续)

表示商户系统请求cdn节点时正常,cdn节点和数据中心链路异常(如cdn请求数据中心tcp三次握手失败导致建链失败),此时cdn响应商户503。表示商户系统请求cdn节点时正常,cdn节点和数据中心链路异常(如数据中心返回rst,数据中心硬件设备故障或升级),此时cdn响应商户502。1)商户通过域名访问应用服务接口,域名上了cdn服务,商户请求先到某个cdn运营商的节点,cdn节点将请求转发到数据中心机房,然后通过负载均衡策略将请求转发到应用服务。场景二:入口,商户请求通过cdn厂商转发请求到应用服务。

2025-11-28 18:06:21 279

原创 Maven构建复杂项目

IDEA中maven配置File->setting-maven进行maven配置,如图Bundled(Maven 3)表示使用IDEA默认安装的maven版本3.9.9,Use Maven Wrapper表示使用项目中执行的maven版本(项目拉取中有.mvn文件夹会指定需要的maven版本,会下载使用),也可指定自定义安装的maven版本。这里说的项目构建指的通过mvn命令执行插件命令,此时的maven版本和jdk版本使用的是环境变量配置的版本,可以看出此时使用的是maven3.5.4,jdk8。

2025-11-28 17:06:20 421

原创 Nginx配置DNS缓存

突然,手机上叮叮的短信声此起彼伏,我心头一紧,不会出幺蛾子了吧。2.内部系统中nginx代理请求时,请求的域名,但是未进行dns的配置,默认ip的ttl是永久的,仅再nginx启动或者reload的时候才会触发dns查询,重新解析新的ip。3.因为所有的请求都是通过nginx代理出去的,继续查看nginx的error日志,发现了大量的Connection refused错误,并且上游的ip地址都是同一个A。6.外部系统对接人反馈,域名绑定了多个运营商,其中一家运营商网络断了(ip A),导致了此次事故。

2025-11-07 15:55:23 581

原创 API接口交互异常捕获通用处理逻辑

/HttpClientErrorException的父类,捕获RestTemplate请求时其他暂未遇到的场景的异常。//业务逻辑,使用RestTemplate请求时,绝大多数异常都是RestClientException的子类,客户端请求异常,4xx等状态码,如接口交互式使用了token,token过期了等场景。//客户端请求异常,4xx等状态码,如接口交互式使用了token,token过期了等场景。//服务器内部异常,5xx等状态码。//网络异常,读超时或连接超时,资源不可访问等。

2025-11-05 14:08:45 379

原创 关于SM2软件加密与硬件加密的问题

日常开发工作中,涉及到SM2算法的加密和解密时,如果一方使用软件实现,而另一方使用硬件实现,可能会遇到一些联调过程中的问题。在SM2的加密和解密过程中,涉及到对ASN.1格式的编码和解码。接口上送的sm2加密值为硬件加密机加密后的asn1字节数组,应用程序需要将asn1转换原始数据进行解密,偶现错误发生在转换过程中。如果可能的话,尽量使软件和硬件使用相同的ASN.1库,以确保编码和解码的一致性。1.编码/解码不一致:软件和硬件可能采用不同的ASN.1编码规则或者库来处理ASN.1格式的数据。

2024-04-25 17:42:40 2533

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

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

2024-03-29 09:51:28 5252

原创 国密算法篇

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

2024-02-28 14:26:09 1784

转载 nginx 问题汇总

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

2024-01-05 17:00:00 639

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

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

2023-11-14 17:47:14 346

原创 Hystrix线程池问题

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

2023-05-03 11:22:32 1171

原创 mysql数据迁移

mysql数据迁移。

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

原创 mysql索引

mysql索引。

2023-04-03 20:22:36 164

原创 myql innodb 锁机制

锁机制。

2023-04-03 20:20:33 348

原创 shell脚本下载sftp文件

shell脚本下载sftp文件

2022-12-20 09:27:50 3840

原创 nginx配置stream模块

nginx配置stream模块

2022-12-19 15:02:13 7600

原创 Maven Release Plugin插件

maven release plugin插件使用

2022-10-31 09:08:24 1841

原创 Maven版本管理

maven版本控制

2022-10-31 09:06:09 1153

原创 Linux搭建Nexus私服

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

2022-10-21 15:55:54 411

原创 mysql实践

mysql简单命令

2022-07-21 15:33:20 274

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

rabbitmq常见问题处理

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

原创 ELK搭建

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

2022-03-24 10:41:07 393

转载 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 3696 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 4851

原创 rabbitmq镜像模式部署

Rabbitmq镜像模式使用

2021-11-22 11:39:49 2536

原创 redis哨兵模式部署

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

2021-11-15 18:55:41 2229

原创 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 726

原创 设计模式总述

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

2021-08-26 10:59:51 294

原创 使用栈来实现队列

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

2021-08-11 10:47:36 212

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

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

2021-08-10 18:48:41 1050

原创 抢红包算法

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

2021-08-05 17:14:42 1294

原创 位图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 1002

原创 寻找缺失的整数

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

2021-07-21 11:43:41 454

原创 如何实现大整数相加

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

2021-07-19 15:15:39 381

微信点金计划_goldenplan.pdf

微信jsapi支付后跳转问题

2021-08-10

空空如也

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

TA关注的人

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