自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

liufang1991的专栏

记录开发过程中的学习心得和遇到的问题

  • 博客(176)
  • 资源 (8)
  • 收藏
  • 关注

原创 spring boot通用转发请求

通用转发请求

2023-03-15 16:26:15 3589 3

原创 camunda数据运维

camunda实例版本迁移

2023-02-08 20:50:56 183

原创 Cat导致内存不足原因分析

Cat导致内存不足

2022-12-22 19:44:35 624 1

原创 常见生产环境问题及排查方法

常见生产问题

2022-09-17 12:57:04 1837

原创 ps使用笔记

ps学习笔记

2022-06-05 14:28:35 217

原创 java版CRC16计算redis的key槽点

背景Redis Cluser采用虚拟槽分区,所有的键根据哈希函数映射到0~16383个整数槽内,计算公式:slot=CRC16(key)&16383。redis的key如果是数字自增,例如group01, group02, group03是否会全部落在相邻的点槽点上,从而打到同一台redis机器上?结论java的hash算法,对group01, group02, group03这种得到的hash值是相邻的redis用的是CRC16算法,对group01, group02, group03

2022-05-26 17:34:08 877

原创 Spring Devtools源码解析

看别人的源码解析自己不上手的话其实并没有真正掌握源码官方使用说明使用文档中文翻译源码在Spring boot项目中Spring Devtools 源码初步解析核心流程1.spring.factories中定义了很多需要被初始化的类,程序启动的时候会扫描spring.factories并注册事件监听者RestartApplicationListener# Application Initializersorg.springframework.context.ApplicationContext

2022-05-10 10:20:16 616

原创 Springloaded源码解析

spring-loaded Spring官方的热更新agentSpring Loaded allows you to add/modify/delete methods/fields/constructors评价使用asm进行字节增强,速度较快,但是字节增强的代码比较难懂,可以将增强后的类保存下来反编译查看增强的结果不依赖于DCEVM,可以直接在开发的jdk中使用自己实现的类更新监控,一个类只能监控一个文件,不能监控自定义目录,如果想要实现远程热部署不是很理想,没有使用nio系统文件监控,自己启

2022-05-08 17:49:51 1549

原创 HotswapAgent源码解析

HotwapAgentJava unlimited redefinition of classes at runtime使用方法按照github和官网说明操作即可, 依赖于DCEVM如果自定义监控外部文件,需要将hotswap-agent.properties添加到src/main/resources中,并且配置extraClasspath属性源码解析评价代码非常优雅,没有一个过长的类,每一个类源码都值得学习字节码操作使用的是javassit, 可以非常直观的在某个方法的前面或者后面插

2022-05-06 22:56:38 2157 5

原创 spring boot websocket服务当做跳板机实现远程jvm remote debug

功能本地IDE可以通过连接B端管理系统实现对远程线上java服务进行调试背景很多时候线上服务出现了故障,希望能够对线上服务器进行本地调试。jrdwp实现了这个功能,原理其实很简单:本地IDE(tcp连接)本地jrdwp client(用tcp协议和ide通信,websocket和远端nginx通信)远端ngiinx(代理websocket)远端jrdwp server (提供websocket服务,并且用tcp和远端java服务通信)远端java服务然而没有权限接触公司的ngin

2022-03-12 13:22:37 2293

原创 excel利用vba批量生成word报告

excel利用vba生成word报告

2022-01-27 10:41:35 9361 1

原创 将thrift生成的对象转换为简洁json

thrift生成的对象输出为清洁版的json

2021-12-07 17:03:07 1749

原创 Spring手动创建bean并注册工具类SpringBeanUtil

import org.springframework.beans.factory.config.BeanDefinition;import org.springframework.beans.factory.support.BeanDefinitionBuilder;import org.springframework.beans.factory.support.BeanDefinitionRegistry;import org.springframework.beans.factory.suppor

2021-10-09 17:26:27 1316

原创 多线程读单线程写文件工具类ReadWriteTaskUtil

背景经常有需求读取一个文件用多线程处理,将处理结果保存到另外一个文件,如果等待全部处理完成再保存容易内存溢出,所以写了一个工具类用单线程写入文件。使用方法 String inputPath = "/data/test.txt"; String outputPath = "/data/out.txt"; int valid = ReadWriteTaskUtil.startCompute(inputPath, outputPath, 30,

2021-10-09 16:30:47 308

原创 Spring懒加载妙用

开启 Spring 全局 bean 懒加载的好处可以加快启动速度,当服务依赖很多的时候,增速非常明显。服务启动时不用考虑依赖,不需要满足所有的依赖就可以启动服务建议 在 test, qa, dev 等环境酌情开启,在自己本机调试测试时可以只测试部分功能,只需要保证需要测试的功能依赖满足即可生产环境一般不建议开启本机单元测试的时候使用全局懒加载和 @mock 结合开启 Spring 全局 bean 懒加载的坏处屏蔽了启动时对 bean 的依赖检查,当 bean 不满足生成条件的时候需要等待

2021-09-29 12:10:49 731

原创 iterm2,tmux使用笔记

标题iterm2 有时候鼠标滚动变为了历史命令滚动,而看不到历史界面老外解决方案1.Preferences–> Profiles —> Terminal ----> 去掉 Save lines to scrollback in alternate screen mode2.vi tmpfile,:q, 先用vi随便编辑一个文件,然后再直接退出vi就可以切换到历史界面了...

2021-08-13 14:59:58 352

原创 服务器配置相同服务性能不一样排查

背景查看响应时间日志,新增加的两台GPU机器服务器响应时间要比老的机器要快3倍qps 相似,机型一模一样,同一个服务和同样的模型排查htop 查看老机器开启了 swap, 新机器关闭了swap,于是将老机器的 swap 关闭,然而并没有效果prometheus 比对两台机器的运行差异,除了老机器CPU使用率和负载都比新机器高以外其余的指标全部都接近,排除磁盘、网络等问题export -p 对比环境变量一样,排除环境变量问题lsof -p 进程ID| grep mem 拿到p

2021-07-22 19:54:22 921 2

原创 hive使用笔记

踩过的坑order by 失效下面两种情况下order by 无效INSERT INTO table1 SELECT * FROM table2 ORDER BY create_time descCREATE table table1 AS SELECT * FROM table2 ORDER BY create_time desc

2021-07-20 16:09:24 206

原创 hive-jdbc的默认超时时间被mysql超时时间覆盖

现象hive-jdbc.2.1.1版本在循环遍历查询数据,并且同时处理发现偶尔会出现SocketException异常,推测异常是由于超时导致的,结果验证果然超时时间被设置为了mysql的30sError retrieving next rowjava.sql.SQLException: Error retrieving next row at org.apache.hive.jdbc.HiveQueryResultSet.next(HiveQueryResultSet.java:3

2021-07-13 20:51:30 5195

原创 LANG环境变量导致Ansj分词不生效

现象有一台生产环境Ansj分词词库没有生效,jar包一模一样,并且日志也已经将字典加载了排查先确定是否 jar 包有问题,拷贝一模一样的包,size 也一模一样,问题还是存在jdk 版本有差异,安装一模一样的 jdk 版本,问题还是存在export -p 查看不同机器的环境变量差异,发现分词出问题的机器 LANG=“C”,分词正常机器LANG=“en_US.UTF-8”,于是 export LANG="en_US.UTF-8" 再来重启程序,发现分词正常了,确定就是环境变量导致查看/etc/p

2021-07-13 10:43:13 142

原创 ThreadPoolExecutor核心线程数和RocketMQ消费线程调整

背景Rocketmq 消费者在高峰期希望手动减少消费线程数,通过DefaultMQPushConsumer.updateCorePoolSize方法可以调用内部的ThreadPoolExecutor.setCorePoolSize设置多线程核心线程数。那么是否能够通过调整参数动态调整Rocketmq消费者呢。结论和实现方案可以通过调整核心线程数减少RocketMQ 消费线程数先挂起消费者consumer.suspend()然后休眠至少1分钟以上,等任务全部消费完成,1分钟是基于Consume

2021-07-09 17:05:05 3068

原创 TensorRT多线程下运行

TensorRT多线程背景TensorRT 在主线程速度比 tensorflow 快了很多,30-60倍的提升。TensorRT 官方多线程的demo,是一个显卡启动一个线程实际生产环境中用的thrift RPC,每个连接都是用 threading.Thread 跑的,也就是需要在多线程下运行解决方案threading.lock加锁可以在多线程下限制单线程可以运行起来,平均一次计算耗时4.5ms左右,表现比单线程慢了2-3倍,但是比tensorflow要快了很多coding如下,也可以用th

2021-06-21 14:16:38 4297

原创 node-sass安装失败

参考整理 node-sass 安装失败的原因及解决办法方法一:npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/方法二:vi .npmrcphantomjs_cdnurl=http://cnpmjs.org/downloadssass_binary_site=https://npm.taobao.org/mirrors/node-sass/registry=https://registry.

2021-06-09 15:12:08 134

原创 mongodb埋点监控的坑

背景公司中间件团队使用了 com.mongodb.event.CommandListener 来对mongodb 打点监控。当我们使用 RocketMQ 调用 mongodb 保存数据的时候没有看到任何异常产生。在我们将 RocketMQ 改用中间件代理,产生了大量的DuplicateKeyException日志,一度怀疑是否中间件的 RocketMQ 代理有问题, 分析源码没有。分析原因消费消息的时候,异常如果自己不捕获打印的话,会被ConsumeMessageConcurrentlyServi

2021-04-28 10:28:08 513

原创 IDEA 中 Thrift 生成的类引用异常问题解决

现象解决方案先编译整个工程mvn -DskipTests clean package将 thrift 生成的目录标记为 Mark Directory as --> Generated Sources Root如果做了上述步骤以后问题解决了,这一步可以不用进行由于 idea 默认的类大小是 2500(2.5m),导致无法导入包打开 idea 的 help->edit custom properties创建一个 idea.properties,追加:ide

2021-04-01 11:01:43 1851 1

原创 spring-cloud-netflix-hystrix的/acutor/hystrix.stream错误UT005023

错误现象UT005023: Exception handling request to /actuator/hystrix.streamgithub上的issue解决方案查看github代码发现在master分支上已经将这个问题修复,但是当前maven中央仓库最新jar包1.5.18中并没有修复。解决方案: 自己打一个jar包覆盖掉原来的jar包我是自己打了包一个1.5.19版本的jar包放到公司私有的maven仓库<dependency> <groupId&gt

2021-03-18 12:00:34 6697

原创 Groovy动态编译类存储及其使用

目的业务规则是动态变化的,使用Groovy动态脚本实现。1.0版本并发不高,每次都是动态编译解析2.0版本现象:并发量大的时候CPU使用率特别高, 所有的方法执行速度都变的很慢原因:动态编译对CPU性能要求较高解决方案:将每次编译的脚本缓存下来3.0版本现象:第一次加载的时候如果规则特别多,打开速度会很慢解决方案:方案1. 提前预热,确保规则都被编译保存在缓存中了方案2. 创建规则的时候就编译保存为.class文件,使用的时候直接加载远程目录的.class文件4.0版本待实现(业

2021-03-05 12:40:22 1569 3

原创 ES客户端由5.6.12升级到7.10

TransportClient替换为RestHighLevelClientSearchRequestBuilder替换为SearchSourceBuilder原来searchRequestBuilder的所有动作都需要去掉动词, 例如searchRequestBuild.addAggregation需要修改为searchSourceBuilder.aggregation,searchRequestBuild.setSize需要修改为searchSourceBuilder.size等等发起请求修改原

2021-02-25 18:09:30 759 3

原创 OutOfMemory自动重启程序

OutOfMemory以后程序已经假死,无法再提供服务,最好的做法是dump内存,发送警告,然后重启服务我的方案:利用at命令延迟启动但有一个问题,at最多支持分钟操作,也就是说要1分钟以后才能启动,我的业务允许接受1分钟的延迟,总比收到警告然后等到人工去启动要好一点。 -XX:OnOutOfMemoryError="at -f /data/deploy/start.sh now +1 minutes;kill -9 %p;"at命令的安装和启动yum -y install atsystemc

2021-01-14 12:23:37 1075

原创 阿里云经典网络迁移VPC笔记

公司的运维负责迁移,我做一下笔记公司所有服务器都在经典网络华东1区域下,技术总监痛下狠心决定迁移到VPC阿里云资源:OSS-----不区分经典和VPCNAS------不区分经典和VPCRedis—区分经典和VPC,有混访模式,迁移后原经典网络仍然能够访问RDS-----区分经典和VPC,有混访模式,迁移后原经典网络仍然能够访问RDS临时混访方案(同时保留经典网络和专有网络地址)NAT-建立专有网络NAT-建立路由表NAT-建立交换机,可用区E,F,I都要建立一个交换机,IP段全部以1

2020-08-20 17:25:27 457

原创 Mybatis Plus使用笔记

mysql关键字在实体字段加上@TableFiled显示写出数据库字段,并且需要加一对反斜杠 /** * 来源 */ @TableField(value = "`from`") @ApiModelProperty(value = "来源") private String from;动态表名在PaginationInterceptor插件中可以实现动态表名,有两种方法从MetaObject对象中得到入参,官方demo没有介绍如何从MetaObject中得到入参来决定表名后缀

2020-08-16 11:08:09 646

原创 Ribbon使用笔记和问题

老的客户端是用服务端依赖swagger-codegen-maven-plugin在打包的时候自动生成的,服务接口调用本质上是用的restTemplate切换为微服务以后,只需要在restTemplate上面加一个@LoadBalanced注解即可根据服务名调用遇到的问题1.provider并发不足,会进入熔断短路状态:Hystrix circuit short-circuited and is OPENconsumer会一直重试,可能会让provider奔溃,所以consumer应该在provi.

2020-07-24 15:40:56 635

原创 Feign使用笔记和问题解决

Feign让客户端调用变得非常简单使用添加maven依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>增加注解@EnableFeignClients注意***@EnableFeignClients注解

2020-07-17 09:30:03 1331 2

原创 jenkins安装指南

用docker安装,官方建议使用jenkinsci/blueocean镜像我是按照网上别人命令安装的jenkins/jenkins镜像安装插件如果有异常Dependency errors:只能手动把插件依赖下载到本地,然后在界面上系统管理-》插件管理-》高级-》上传插件来安装插件,安装好插件依赖后重启就会自动安装失败的插件,我都重启了至少5次下载插件的地址我建议使用清华镜像...

2020-07-07 19:45:17 124

原创 Jackson使用笔记

使用Mybatis-plus的JacksonTypeHandler无法反序列化List<Bean>模拟JacksonTypeHandler类写了自定义ListTypeHandler来解析,目前需要给每个List<Bean>都写一个继承自ListTypeHandler的ListBeanTypeHandlerListTypeHandler类如下:import com.baomidou.mybatisplus.core.toolkit.Assert;import com.baomi

2020-07-07 14:38:15 1153

原创 LAMP和SAML

老外用LAMP存储用户账号,SAML做权限认证,以前都没听说过,记录一下入门LAMP建议看博客LDAP概念和原理介绍Spring LDAP的使用,使用spring ldap非常简单SAML建议看博客SAML2.0, 有一个包括sp和idp的demo,demo在idea下运行找不到静态配置我在博客的下面有评论如何修改此外可以参考spring-boot-security-saml-samplespring-security-saml官方docjava-saml, 老外写的一个sp工具,最开始研

2020-07-01 09:38:59 121

原创 java脚本表达式

java中的表达式有很多种,挑花眼睛,直接推荐使用QLExpress和GroovyQLExpress 被广泛应用在阿里的电商业务场景 ,速度较快, 扩展非常灵活,性能和Groovy相当Groovy 支持丰富的语法糖,集成简单,速度较快Drools, 可以将自定义的规则打成jar包,利用内置maven动态监控maven仓库的jar包变化,实现规则动态替换fel 通常情况下,Fel-0.7每秒可以执行千万次表达式(不包含编译时间)。速度是Jexl-2.0的20倍以上。目前还没有发现开源的表达

2020-06-29 17:50:30 917 1

原创 Spring boot问题及其解决

自定义WebMvcRegistrations无效现象:问题出现在一个由spring-mvc老工程改造成spring boot项目中,在Application.java类中通过@ImportResource(“classpath:applicationContext-*.xml”)把xml的配置实例化,下面的自定义webmvc注入器无效 @Bean public WebMvcReg...

2020-05-06 16:34:54 1869

原创 java特殊符号处理

java去掉特殊符号文章有很多,这里汇总一下1.利用guaua去掉所有不可见字符com.google.common.base.CharMatcher.INVISIBLE.removeFrom(str);2.需要对字符串做情感分析,只保留中文英文和常见符号即可String reg = "[^\\u4e00-\\u9fa5a-zA-Z .,\"?!:'。,!“‘]";str.replace...

2020-04-03 15:10:25 2265

原创 ElasticSearch设置和索引重建

我的索引需求如下:需要索引的字段有很多个,远远大于默认的1000个需要动态创建字段索引,dynamic默认为true禁止字符串自动转换,关闭时间和数字转换创建索引PUT myindex{ "settings": { "number_of_shards": 5, "number_of_replicas": 2, "index.m...

2019-12-11 14:03:01 380

hystrix-metrics-event-stream-1.5.19.jar

修复了hystrix-metrics-event-stream-1.5.18.jar版本的/acutor/hystrix.stream的bug。 对应博客https://blog.csdn.net/liufang1991/article/details/114970154

2021-03-18

cerebro-0.9.0.zip

ElasticSearch监控工具 - cerebro0.9.0,从github上下载了好几天才下载下来 wget https://github.com/lmenezes/cerebro/releases/download/v0.9.0/cerebro-0.9.0.zip

2020-05-13

setupssh-7.5p1-1.exe

open ssh for windows安装版版本7.5p1-1,官网下载不下来,从另外一个国外网站以蜗牛的速度下载下来的

2017-08-28

MemCached安装

Mac系统下安装Memcached,资源中包含安装所需的安装包,以及编译安装好的程序包

2016-05-22

gifview2或者gifview1.2

从谷歌上下载下来的,https://code.google.com/p/gifview2/ trunk中是gifview的源码。 trunk dir is gifview source demo中是一个demo的代码。 demo dir is a demo project lib中是gifview.jar。 lib dir is gifview.jar

2015-08-12

手机快播文件合并利器

很多人想要将手机快播中的文件保存到自己电脑上,本软件用C#调用批处理命令实现将手机快播文件合并成一个完整的视频文件,注意合并的文件夹中如果缺少了一些文件,将会导致视频不能解码,我测试的是90%能合并成功,源码可供C#或者批处理命令学习

2013-12-20

Access表缩略图显示并快速转换为Excel

系统实现的是将Access数据库中的表格用缩略图显示出来,双击该缩略图可以快速生成该表的Excel表格,系统是用VS2010编写的 资源中包含了Access通用类,CreateExcelFile快速生成Excel表格类,ExtractIcon利用Shell32.dll提取系统图片类,该系统适合C#编程学习,因为实在是没有下载积分了,所以资源分设为1分,请大家见谅

2013-12-20

我知道的几个保护隐私文件的方法

里面是我所知道的几个常见保护隐私的方法,其中第三个和第五个是我在网上找到的,感觉很不错

2011-03-07

空空如也

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

TA关注的人

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