- 博客(37)
- 资源 (2)
- 收藏
- 关注
原创 tomcat8设置cookie大小maxCookieCount
文章目录背景异常报错异常分析解决方案异常报错异常分析打印过长的cookie后记背景公司线上的tomcat版本是7,在使用过程中遇到一些问题,记录一下异常报错异常分析private boolean isHttpSeparator(char c) { if ((c < ' ' || c >= 127) && c != '\t') { throw new IllegalArgumentException("Control chara
2020-10-20 15:54:32
1116
原创 webscraper爬数据
背景我们偶尔需要爬取网页数据,是否有不写代码抓数据的实现方式,最近找到个webscraper插件插件介绍插件官网:https://www.webscraper.io/插件slogan:Making web data extraction easy and accessible for everyone插件安装方式一:可以科学上网的,谷歌插件市场自行搜索方式二:找个可以下载谷歌插件的网站来下载,如 CrxDL.COM,注意插件的logo,别下载错了,安装方式跟其他插件一样(自行百度)插件
2020-09-20 10:53:08
501
1
原创 【编程提效】MapStruct对象映射框架(Java Mapping Frameworks)
背景/场景我们在编程过程中,经常存在实体类的转换。如数据库层对象pojo类 与 底层对外传输的对象 xxResponse类。一般常用的方式是每个值去get/set。幸运的是,我们有很多框架可以解决这种问题。常见的工具类Spring BeanUtilsApache BeanUtilsDozerOrikaMapStructModelMapperJMapper那我们如何选择这些工具呢性能对比不啰嗦,直接上图总之,就是 MapStruct性能在各种综合情况下最优MapStruct使
2020-05-23 13:56:21
629
原创 jvm-sanbox详解-SPI机制
什么是SPI机制SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的接口。我们知道JDK代码提供了大量的方便的工具类给我们使用,JDK会对经常使用接口进行抽象统一。如链接数据库我们可以使用java.sql.DriverManager,但各种数据库的实现各自不同,所以为了给用户统一使用,屏蔽底层各自难懂的细节,我们这种SPI机制产生了。mysql加载驱动回想我们经常使用mysql的过程0.配置文件: url: jdbc:mysql://
2020-05-17 00:01:59
554
原创 jvm-sanbox详解-agent方式和attach方式
Instrumentation包的简介JDK从1.5开始,在rt.jar包下有了java.lang.instrument这个文件夹,刚开始只支持agent方式启动,但使用还是不太方便,因为我们在JDK1.6后增加了attach方式。在官方文档提供了两种方式agent命令方式在jvm启动参数中增加-javaagent:jarpath[=options]agent有两点要求:agent jar必须包含Premain-Class属性,值是agent class启动类必须实现 一个 public s
2020-05-16 21:39:22
2193
原创 jvm-sanbox详解--汇总篇
介绍jvm-sanbox是阿里出的基于 java.lang.instrument包做的一款工具使用手册源码git地址:https://github.com/alibaba/jvm-sandbox使用手册:源码中wiki很详细,不再赘述jvmsandbox的前世今生:https://yq.aliyun.com/articles/707736基本原理...
2020-05-16 18:12:24
1067
原创 ThreadLocal深度解析
thread与threadlocal关系首先从threadlocal的变量开始说起 //后面在计算线程中缓存元素的位置时会用到哈希值 private final int threadLocalHashCode = nextHashCode(); //哈希值默认从0开始 private static AtomicInteger nextHashCode ...
2018-08-03 19:29:06
277
原创 全局唯一id生成方案
方案没有好坏,只有适合与否依赖第三方机制mysql主键自增优点 – 简单方便缺点 – 扩容复杂,业务增大时候迁移困难等基于时间戳+随机数优点: – 流水号对人比较友好,可方便看到生成时间缺点(随机数生成需要校验前面是否生成过) – 可将生成值写入redis的set集合中 – 或者使用redis自增等UUID优点 – 简单粗暴缺点 –...
2018-07-28 16:57:47
661
原创 linux查看文件修改日期
vi /var/tomcat/find.sh!/bin/basha=stat -c %Y /var/tomcat/logs/catalina.out //获取文件的修改时间(秒为单位) b=date +%s //获取当前系统的时间 (秒为单位) if [ [[[ b - $a ] -gt 1800 ]; //判断当前时间和文件修改时间差(30分钟) then ...
2018-04-02 18:35:45
2923
原创 常见的限流算法以及应用
常见的限流算法令牌桶算法1)存放固定令牌的桶,生产令牌的速率固定 2)当令牌达到上限时候,产生的令牌被丢弃或拒绝 3)n个请求过来,拿n个令牌,若令牌不足,则请求被决绝或等待漏桶算法1)桶容量固定,固定速录流出 2)桶是空的,不流出 3)以任意速率流入桶,若超过桶容量,被丢弃 对比:令牌桶算法可一次拿n个令牌,说明允许突发请求。漏桶算法流出速率固定,说明会平...
2018-03-31 20:23:28
1249
原创 程序运行中常见的隔离机制
线程隔离:对tomcat默认线程池进行分离,分成两个线程池,这样提交核心业务可保证不受影响。进程隔离:服务耦合严重会拖垮整体性能,这时候对服务进行拆分,能够避免互相干扰调用组隔离:对服务集群分组,核心业务单独保护,避免干扰读写分离:在写服务出问题时候读服务高可用动静分离:静态资源放到cdn上爬虫分离:对请求header如爬虫spider隔离,流量...
2018-03-26 23:23:25
2206
原创 查看多台机器日志polysh
今天聊一个神器,能够多台机器看日志(不限于此)下载包并安装wget http://guichaz.free.fr/polysh/files/polysh-0.4.tar.gz tar -zxvf polysh-0.4.tar.gz cd polysh-0.4 python setup.py install –home=~/polysh添加polysh执行目录到环境变量echo "export
2017-11-21 10:53:32
1696
转载 log4j,log4j2,slf4j,common-logging,jdk-logging集成以及切换
log4j,log4j2,slf4j,common-logging,jdk-logging集成以及转换
2017-02-16 20:30:56
2543
转载 slf4j, log4j, logback, java.util.Logging关系
slf4j, log4j, logback, java.util.Logging关系
2016-12-20 19:04:35
527
原创 一次服务器突然变慢的优化
寻找问题1.检查服务器硬盘是否够用,内存是否够用,CPU是否够用,数据库是否够用 2.使用JDK自带调试工具查看是否内存泄露等原因 3.查看阿里云服务器各项配置,突然发现网络带宽持续走高,这应该就是问题所在了 网络带宽上线5M,前几天还好,最近几天明显看到达到峰值,一旦达到峰值就服务器就卡解决问题1.查看到底什么东西占用网络通过百度可以通过iftop命令查看,iftop -i 网卡名称
2016-04-25 22:26:58
2184
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人