- 博客(203)
- 收藏
- 关注

原创 我是如何进行日常时间管理的
运用四象限工具对任务分为: 紧急重要、紧急不重要、不紧急重要、不紧急不重要。帕金森定律: 你有多少时间完成工作,工作就会自动变成需要那么多时间。不紧急不重要: 杂事,合理授权给相应的人。紧急重要: 最高优先级任务。紧急不重要: 救火类的任务。不紧急重要:长远有益时间。
2022-11-26 10:36:40
327
原创 nginx 499错误处理及nginx的配置参数
近期响应集团降本增效,节省ci,stg机器,我们项目开始容器化,在改造过程中,链路的访问发生了变化,导致出现了499,解决方如下访问链路: 域名—> ELB (内网访问) —> openrestry (stg环境,支持自定义lua脚本) —> ELB(提供服务固定ip) —> (容器集群)POd。
2023-06-18 15:12:24
13202
原创 postgrepsql字符串分函数、数组长度函数、分割符分割字符串为数组
某张表里有存储字符传为文件名(如下),现在有一个数据需求,要求查询文件的都有那些后缀。
2023-05-25 15:38:16
3036
原创 db脚本持续集成: flyway创建、管理和版本化数据库
Flyway 是一种开源的数据库迁移工具,可以帮助开发者将数据库的版本管理集成到应用程序中。它使用简单的 SQL 脚本来管理数据库的版本和升级。Flyway 支持多种主流的数据库(如 MySQL、PostgreSQL、Oracle、SQL Server 等),使得在不同数据库之间进行迁移变得更加容易和灵活。Flyway 是基于约定优于配置的原则,提供了一系列命名规范和组织结构,使得创建、管理和版本化数据库变得更加可预期和可重复。
2023-05-24 15:40:03
1570
原创 应用假死排查过程及OutOfMemory问题定位及处理
相关关键词: java8、jmap、jstack、jstat、netstat、less 、grep、 jvm。
2023-05-11 21:36:12
1474
原创 redis热key的发现管理淘汰
本地–> nginx —> web服务 ----DB —> dfs —> 网络代理npm的tgz包请求特点: 高并发、热点包、读多写少需要发现热点包,缓存到本地,减少web服务和db、dfs的交互,减少网络链路。直接从本地ssd下载文件。
2023-04-20 18:42:15
116
原创 nginx常见分发算法实现
根据流量类型的不同,选择合适的均衡算法;常用的均衡算法: 轮询、加权轮询、随机、ip_hash、 url的hash分发、根据机器性能实时计算分发。
2023-04-14 07:52:15
744
原创 HTTP缓存机制
HTTP有两种缓存机制:强制缓存和协商缓存,强制缓存cache-control比expires的语义丰富的多;协商缓存:Last-Modified比etag生成性能好,但是只能秒级。技术方案没有最好,只有最适合当前场景的解决方案,技术也是一直发展的,我们也需要与时俱进,脑中存储各个场景在具体能拿到最大资源下的最合适的方案。
2023-04-11 20:59:15
598
原创 令牌桶限流通过信号量实现
由于是我们限制自己的发起请求,对方限制我们的结果,因此根据对方给的限制每分钟300个请求的限制,使用令牌桶,来控制我们的请求。非上面限流算法,既然对方限流我们,那我们只要一直请求,请求结果如果是限制请求,那么我们sleep一段时间,再继续发起请求。场景2服务方对我们限流,为了能正确获得服务结果,我们也需要对我们的请求进行限流发起。1.为了防止第三方无节制的调用打垮我们的系统,需要对重要的请求进行限流。计数限流、固定窗口、滑动窗口、漏桶算法、令牌桶。2.服务方对我们调用的接口有每分钟限流。
2023-03-30 14:41:21
424
原创 logback输出日志区分所属线程:方便运维排查问题
生成每次请求的唯一标识/*** @description logback拦截器} }1.preHandle:在业务处理器请求之前被调用。预处理可以可以进行编码控制、安全控制、权限校验等2.postHandle:在业务处理器处理请求完成之后,在生成视图之前执行。3.afterCompletion:在DispatcherServlet完全处理完请求后被调用,可用于清理资源等。
2022-12-30 17:32:50
1891
原创 观察者模式:spring的事件监听
之前,我在设计模式专栏里写过观察者模式,感兴趣的同学,可以去看看。spring为我们提供了事件监听机制,可以帮助我们解耦代码。
2022-12-30 17:28:54
186
原创 ehcache使用及缓存不生效处理方法
ehcache是一个纯java的进程内的缓存框架, 具有快速,精干等特点。java中最应用广泛的一款缓存框架(java’s most widely-used cache)ehcache是一个基于标准、开源的高性能缓存,扩展简单。因为它健壮、经过验证、功能齐全、方便的和第三方框架与库集成。Ehcache 从进程内缓存一直扩展到具有 TB 大小缓存的进程内/进程外混合部署。
2022-12-13 21:18:27
2299
1
原创 拥抱TDD吧,节省30%开发时间
TDD:test-driven-development即测试驱动开发,是指在实际开发逻辑代码前,先写好测试用例。整个TDD开发流程:开发(定义顶层抽象)-> 编写用例 -> 准备数据 ->跑用例->失败->开发->跑用例->成功->交付非TDD开发开发->手工测试->失败->开发->手工测试->成功->交付。
2022-11-26 10:13:13
199
原创 maven的pom没有指定包的版本
输出依赖树包有具体的版本parent有定义版本https://stackoverflow.com/questions/12315746/what-will-the-version-be-when-i-dont-specify-it-in-the-mavens-pom-xml/12316462#12316462https://blog.youkuaiyun.com/kang389110772/article/details/106497338
2022-11-26 10:08:24
2039
原创 npm ERR! code EINTEGRITY处理
方法三: 打开你项目的package-lock.json 用上面的sha512搜索,找到对应的包,替换integrity的值(原因:已发布包unplish后再次publish,导致sha512的值改变了)表示某个包的当前下载sha512与之前记录的不一致,这种可能情况是:本地下载过某个包,然后对应的被unpublish后再次publish导致文件的sha512发生了变化。方法四: (如是自研仓库): 进入自研仓库库,如是远程下载的包,选择指定版本,删除包,从官网重新拉取包。
2022-11-26 10:07:35
2318
原创 一个字符占多少字符及varchar与char的区别
一个字符占多少字符,不同的编码规则占用字节不同。ASCII: 一个英文字符占用一个字节,一个中文汉字占用两个字节UTF-8: 一个英文字符占用一个字符,一个中文(含繁体)占用三个字节unicode: 一个英文字符占用两个字符,一个中文(含繁体)占用两个字节。
2022-09-24 14:34:11
3009
原创 java并发包的基石:AbstractQueuedSychronier及synchornized
了解AbstractQueuedSychronier 以及一些锁概念
2022-09-08 18:26:40
280
原创 一次生产死锁问题的处理
存储制品库maven包,有两张表meta_maven存储groupId、artifactId、version信息,meta_maven_file存储GAV下的具体文件jar、pom、sha1、meta_maven.xml。场景1: deploy上传snapshot的maven包,用新的meta_maven.xml替换之前的,之前的删除。场景2: 下载GAV包,检查是否有漏洞:开始更新组件状态为扫描中,从黑鸭子获取扫描结果(超长时间等待),更新组件的扫描结果,有漏洞禁止下载。
2022-09-02 11:08:58
528
原创 redis key的删除淘汰策略
被动删除: 当读写key的时候检查是否过期,过期删除,无法处理冷数据主动删除: redis有1s10次的定时任务,检查key是否过期,过期则删除LRU: least recently use LRU淘汰最长时间没有使用的LFU: least frequently use LFU淘汰使用次数最少的。...
2022-09-01 11:04:40
313
原创 分布式锁的3种实现
我们在线上部署只有一个应用实例的时候,我们可用sychronized、lock来加锁,但是当部署了多个实例,实例间要对资源进行加锁,就要使用分布式锁了。
2022-09-01 09:55:05
1033
原创 分布式理论基础:CAP与BASE理论
分布式系统在遇到部分节点或网络分区故障时,仍然能够对外提供满足一致性和可用性的服务。mysql传统数据库时追求强一致性模型的,所以他的性能不高,每秒只有几千个QPS。分布式系统天然满足分区容错性,cap只能同时满足两者,那么也就只能是CP,AP。服务一直可用,即使部分节点故障了,整体服务还是能提供正常的响应。如果部分节点失效,允许损失部分可用性,保证核心可用。允许系统存在中间状态,而该状态不影响系统整体可用性。所有子节点,经过一定时间,数据最终能够达到一致性。zk是CP保证强一致性、分区容错性。...
2022-08-26 15:47:31
292
原创 入职中国平安三周年的一些总结
制品库承担支撑着平安集团30+子公司的3万研发人员日常持续集成。作为CI/CD制品库系统负责人,参与制品库从无到有的架构设计、开发、运维以及版本管理。
2022-07-02 13:21:03
2281
1
原创 testtesttesttest
算法位一个整形数组中除了两个数字之外,其他都出现了两次,请找出两个只出现一次的数字树1.树的后序排列2.判断数组是否是 树的后序遍历结果链表数组1.把数组排成最小的数2.找出数组中重复的超过一般的数字其他问题mysql1:MySQL 的逻辑架构了解吗?2:谈一谈 MySQL 的读写锁3:MySQL 的锁策略有什么?4:数据库死锁如何解决?5:事务是什么?6:事务有什么特性?7:MySQL 的隔离级别有哪些?8:MVCC 是什么?9:谈一谈 InnoDB10:谈
2022-04-23 23:50:59
1563
原创 linux随机生成文件
linux随机生成文件有些时候我们需要随机生成文件来做测试:如对系统存储文件进行压测,docker仓库压测,需要使用不同的文件,不同大小的镜像来进行压力测试。脚本# 脚本随机生成指定大小($1)一个(i<=1 如需要多个可修改这里或使用变量传入控制>)文件# $1 指定文件大小,单位MB#!/bin/shfor ((i=1; i<=1; i++))do dd if=/dev/urandom of=$i".txt" bs=1048567 count=$1done*
2021-10-18 14:15:57
1948
原创 docker客户端拉包逻辑及优化思路
docker客户端拉包逻辑及优化思路docker pull xxxxxxConcurrent downloadsBy default the Docker daemon will pull three layers of an image at a time. If you are on a low bandwidth connection this may cause timeout issues and you may want to >>lower this via the --m
2021-09-16 18:20:05
2704
原创 spring中的循环依赖
spring中的循环依赖循环依赖的场景1.构造器的循环依赖2.field属性的循环依赖如果两个对象是构造器的循环依赖,这中是没有什么办法解决,当A构造器依赖B,B构造器依赖A,无法提前实例化,以及缓存,因此无法处理。spring对bean的创建是分三个步骤:1.通过构造器new出对象;2.设置属性;3.执行设置的初始化函数。field属性的循环依赖时,我们可以完成构造器的执行,得到对象的引用地址,传给依赖的属性,后面再对这个对象设置相关的属性。就处理了field属性的循环依赖。filed循环依
2021-08-25 11:48:56
205
原创 mybatis之builder包处理mybatis初始化
mybatis之builder包处理mybatis初始化mybatis有两种xml的文件,一种是Mybatis-config.xml负责配置mybatis的各种配置以及指定映射文件;一种是xml映射文件负责sql。其中配置文件有很多子节点,各自有各自的功能,xml也有多种子节点resultMap、sql、select、insert、update要解析这些复杂的配置为对象,一个简单的类肯定是不够的,这个时候就需要各个不通职责的子类合作来解析配置和映射文件。mybatis通过建造者模式来解析配置文件和映射
2021-08-20 16:50:58
547
原创 编写单元测试,测试你的代码
编写单元测试,测试你的代码编写单元测试三步骤:1.准备数据:db、mock第三方服务、MQ、redis、dubbo2.调用测试方法3.验证期望结果依赖junit包<dependency> <groupId>org.jmockit</groupId> <artifactId>jmockit</artifactId> <version>1.38</version> <scope>test</
2021-08-17 17:28:01
316
原创 harbor关闭异常问题处理
harbor关闭异常问题处理错误信息当执行 docker-compose down -d 关闭harbor 时,提示无法关闭,提示信息如下:ERROR: network harborv21_harbor id a65b5375c996c2ac54cbbc69c66aa169cd69b0c583ee0f1e1d913d591c3b19a2 has active endpoints这是因为有组件的网络链接无法关闭,执行以下命令关闭组件的网络连接。1.查看harbor组件之间的网络通信 docke
2021-08-16 10:01:40
1758
原创 spring中bean创建过程中的扩展点
spring中bean创建过程中的扩展点spring中bean的生命周期Spring中的bean在创建过程中大概分为一下几个步骤:实例化 --> 填充属性 --> 执行aware接口 --> 初始化 --> 可用状态 --> 销毁1.实例化就是调用类的构造器进行对象创建的过程,比如:new Object();就实例化了一个Obejct对象;2.填充属性是指注入bean的依赖或者给属性赋值;3.Aware接口是Spring中的“觉醒”接口,是Spring容器通过
2021-08-11 20:26:05
853
原创 通过fidder抓npm拉包协议
通过fidder抓npm拉包协议npm使用fidder抓包1. 查看fidder的端口打开fidder–> Tools —> Connections —> fidder listens on port默认8888端口2.设置npm代理通过fiddernpm config set proxy http://127.0.0.1:8888npm config set https-proxy http://127.0.0.1:88883. 打开fidder抓包打开fidder
2021-08-11 20:25:07
343
原创 mybatis之bind模块
mybatis之bind模块mybatis通过定义接口mapper,不需要继承或实现接口,Mapper接口中的方法定义select|update|insert|delete方法,通过关联映射文件中定义的sql来执行查询。 .....org.apache.ibats ....................binding ...........................BindingException ...........................MapperMethod .....
2021-08-03 09:24:15
529
原创 mybatis之缓存模块
mybatis之缓存模块mybatis中存在一级(默认开启)、二级缓存。缓存可以加快查询速度,减少连接db的次数。cache模块属于mybatis的基础支持层。位于org.apache.ibatis.cache包下。--------org.apache.ibatis.cache-------------------------------decorators-----------------------------------------BlockingCache----------------
2021-07-28 09:17:17
235
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人