博客园 - 程序人生ly
uuid:7d267088-5232-4821-9010-8cd5fdd6cd4f;id=1079193
2022-03-28T10:14:36Z
程序人生ly
https://www.cnblogs.com/lylife/
feed.cnblogs.com
https://www.cnblogs.com/lylife/p/11667228.html
踩过的坑系列之InputStream.read(byte[])方法 - 程序人生ly
项目之前都是好好的,最近现场那边出现一个问题,报错不是合法的json字符串,这个json字符串是通过http请求访问获得的。 通过直接在浏览器上直接访问http这个请求,发现返回的json也是完全正确的。后来排查代码才发现了原来错误出在从字节流中读取数据这里: 看下之前出错代码:这个方法是处理Inp
2022-03-28T10:15:00Z
2022-03-28T10:15:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】项目之前都是好好的,最近现场那边出现一个问题,报错不是合法的json字符串,这个json字符串是通过http请求访问获得的。 通过直接在浏览器上直接访问http这个请求,发现返回的json也是完全正确的。后来排查代码才发现了原来错误出在从字节流中读取数据这里: 看下之前出错代码:这个方法是处理Inp <a href="https://www.cnblogs.com/lylife/p/11667228.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/16039232.html
你真的了解线程池ThreadPoolExecutor吗? - 程序人生ly
背景 最近被别人问到有关线程池的问题,自己没有答上来,自己觉得之前还是比较了解线程池的,所以又重新学习了一下这块内容,然后记录一下与大家分享。 从两个问题说起 线程池线程数增加过程是怎样的? 如果线程池线程运行过程中抛异常了,线程池怎么处理该异常线程(是否抛异常、是否回收线程再次利用) Part 1
2022-03-22T06:36:00Z
2022-03-22T06:36:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】背景 最近被别人问到有关线程池的问题,自己没有答上来,自己觉得之前还是比较了解线程池的,所以又重新学习了一下这块内容,然后记录一下与大家分享。 从两个问题说起 线程池线程数增加过程是怎样的? 如果线程池线程运行过程中抛异常了,线程池怎么处理该异常线程(是否抛异常、是否回收线程再次利用) Part 1 <a href="https://www.cnblogs.com/lylife/p/16039232.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/11674577.html
SpringBootApplication启动排除DataSourceAutoConfiguration不生效??? - 程序人生ly
项目引用了新版本mybatis-spring-boot-starter之后启动不起来,报错Cannot determine embedded database driver class for database type NONE,在网上搜索是需要在排除掉spring自身的org.springfra
2019-10-14T14:14:00Z
2019-10-14T14:14:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】项目引用了新版本mybatis-spring-boot-starter之后启动不起来,报错Cannot determine embedded database driver class for database type NONE,在网上搜索是需要在排除掉spring自身的org.springfra <a href="https://www.cnblogs.com/lylife/p/11674577.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/11646699.html
MySQL删除死锁案例分析 - 程序人生ly
表结构 CREATE TABLE `queue` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', `unit_id` varchar(64) NOT NULL , `queue_id` varchar(32) NO
2019-10-10T03:12:00Z
2019-10-10T03:12:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】表结构 CREATE TABLE `queue` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', `unit_id` varchar(64) NOT NULL , `queue_id` varchar(32) NO <a href="https://www.cnblogs.com/lylife/p/11646699.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/11576488.html
高并发下比AtomicLong性能更好的LongAdder - 程序人生ly
前言 JDK1.8相对之前版本做了很多多线程性能方面的优化,今天来看看AtomicLong和LongAdder(1.8新增),这两个类都是可以对一个Long数值进行原子类的操作增加或减少,用于计数。 AtomicLong原理 AtomicLong修改值最终是通过cas操作来修改的,如果没有更新成功,
2019-09-24T01:31:00Z
2019-09-24T01:31:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】前言 JDK1.8相对之前版本做了很多多线程性能方面的优化,今天来看看AtomicLong和LongAdder(1.8新增),这两个类都是可以对一个Long数值进行原子类的操作增加或减少,用于计数。 AtomicLong原理 AtomicLong修改值最终是通过cas操作来修改的,如果没有更新成功, <a href="https://www.cnblogs.com/lylife/p/11576488.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/11567599.html
Dubbo面试大纲 - 程序人生ly
Dubbo 简介 本篇文章不是进行详细的Dubbo实现以及原理分析的文章,适用于用过Dubbo,对Dubbo有一定了解准备面试的小伙伴阅读。下面列的一些点,如果能在面试时候说到,那面试官肯定觉得不错了。 服务暴露 1.从xml读取ServiceBean配置,订阅了spring容器上下文刷新事件进行e
2019-09-22T07:15:00Z
2019-09-22T07:15:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】Dubbo 简介 本篇文章不是进行详细的Dubbo实现以及原理分析的文章,适用于用过Dubbo,对Dubbo有一定了解准备面试的小伙伴阅读。下面列的一些点,如果能在面试时候说到,那面试官肯定觉得不错了。 服务暴露 1.从xml读取ServiceBean配置,订阅了spring容器上下文刷新事件进行e <a href="https://www.cnblogs.com/lylife/p/11567599.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/11567605.html
项目重启后, Mybatis报错org.apache.ibatis.ognl.NoSuchPropertyException分析 - 程序人生ly
Mybatis报错org.apache.ibatis.ognl.NoSuchPropertyException分析 日志报错信息 org.apache.ibatis.ognl.NoSuchPropertyException: XxxExample&Criterion.condition或者org.a
2019-09-22T07:15:00Z
2019-09-22T07:15:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】Mybatis报错org.apache.ibatis.ognl.NoSuchPropertyException分析 日志报错信息 org.apache.ibatis.ognl.NoSuchPropertyException: XxxExample&Criterion.condition或者org.a <a href="https://www.cnblogs.com/lylife/p/11567605.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/9247924.html
记一次log4j日志导致线上OOM问题案例 - 程序人生ly
最近一个服务突然出现 OutOfMemoryError,两台服务因为这个原因挂掉了,一直在full gc。还因为这个问题我们小组吃了一个线上故障。很是纳闷,一直运行的好好的,怎么突然就不行了呢。。。 配置了一个 -XX:+HeapDumpOnOutOfMemoryError(该参数作用是在第一次发生
2018-06-30T09:01:00Z
2018-06-30T09:01:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】最近一个服务突然出现 OutOfMemoryError,两台服务因为这个原因挂掉了,一直在full gc。还因为这个问题我们小组吃了一个线上故障。很是纳闷,一直运行的好好的,怎么突然就不行了呢。。。 配置了一个 -XX:+HeapDumpOnOutOfMemoryError(该参数作用是在第一次发生 <a href="https://www.cnblogs.com/lylife/p/9247924.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/9231818.html
记一次线上MySQL数据库死锁问题 - 程序人生ly
最近线上项目报了一个MySQL死锁(DealLock)错误,虽说对业务上是没有什么影响的,由于自己对数据库锁这块了解不是很多,之前也没怎么的在线上碰到过。这次刚好遇到了,便在此记录一下。 出现死锁问题背景 出现死锁问题背景 项目层面:报错的项目做的是一个批量下单的动作,会同时写入多条订单数据,代码之
2018-06-26T15:55:00Z
2018-06-26T15:55:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】最近线上项目报了一个MySQL死锁(DealLock)错误,虽说对业务上是没有什么影响的,由于自己对数据库锁这块了解不是很多,之前也没怎么的在线上碰到过。这次刚好遇到了,便在此记录一下。 出现死锁问题背景 出现死锁问题背景 项目层面:报错的项目做的是一个批量下单的动作,会同时写入多条订单数据,代码之 <a href="https://www.cnblogs.com/lylife/p/9231818.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/8620670.html
订单缓存查询实践 - 程序人生ly
订单缓存实践 最近在做订单缓存查询相关需求,记录下该过程中缓存查询考虑的几个问题以及处理方案。 实际场景中使用缓存都是先去缓存中查询,如果缓存没有命中,在去查询数据库并将结果缓存。如果查询一个在系统中根本就不存在的数据,就会造成每次请求都会穿透缓存去查询数据库。如果出现大量的缓存穿透(或者恶意攻击)
2018-03-21T15:56:00Z
2018-03-21T15:56:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】订单缓存实践 最近在做订单缓存查询相关需求,记录下该过程中缓存查询考虑的几个问题以及处理方案。 实际场景中使用缓存都是先去缓存中查询,如果缓存没有命中,在去查询数据库并将结果缓存。如果查询一个在系统中根本就不存在的数据,就会造成每次请求都会穿透缓存去查询数据库。如果出现大量的缓存穿透(或者恶意攻击) <a href="https://www.cnblogs.com/lylife/p/8620670.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/7881950.html
基于Redis实现延时队列服务 - 程序人生ly
背景 在业务发展过程中,会出现一些需要延时处理的场景,比如: a.订单下单之后超过30分钟用户未支付,需要取消订单 b.订单一些评论,如果48h用户未对商家评论,系统会自动产生一条默认评论 c.点我达订单下单后,超过一定时间订单未派出,需要超时取消订单等。。。 处理这类需求,比较直接简单的方式就是定
2017-11-22T15:43:00Z
2017-11-22T15:43:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】背景 在业务发展过程中,会出现一些需要延时处理的场景,比如: a.订单下单之后超过30分钟用户未支付,需要取消订单 b.订单一些评论,如果48h用户未对商家评论,系统会自动产生一条默认评论 c.点我达订单下单后,超过一定时间订单未派出,需要超时取消订单等。。。 处理这类需求,比较直接简单的方式就是定 <a href="https://www.cnblogs.com/lylife/p/7881950.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/6802602.html
使用Redis实现分布式锁 - 程序人生ly
public class JedisLock { private Jedis jedis; private String lockKey; /**默认过期时间*/ private int expireMillis = 3000; private String lockValue; public JedisLo...
2017-05-03T08:36:00Z
2017-05-03T08:36:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】public class JedisLock { private Jedis jedis; private String lockKey; /**默认过期时间*/ private int expireMillis = 3000; private String lockValue; public JedisLo... <a href="https://www.cnblogs.com/lylife/p/6802602.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/6140740.html
log4j配置只打印指定jar或包的DEBUG信息 - 程序人生ly
有的时候查问题的时候需要打印第三方jar里面的debug信息,假如全部jar都打印的话日志文件会很大,这个时候可以配置log4j只打印指定jar的debug信息或者包,同时输出到了一个新的文件中。 比如:我这里只打印了mybatis下面datasource这个包下面的debug信息到了debug.l
2016-12-07T04:54:00Z
2016-12-07T04:54:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】有的时候查问题的时候需要打印第三方jar里面的debug信息,假如全部jar都打印的话日志文件会很大,这个时候可以配置log4j只打印指定jar的debug信息或者包,同时输出到了一个新的文件中。 比如:我这里只打印了mybatis下面datasource这个包下面的debug信息到了debug.l <a href="https://www.cnblogs.com/lylife/p/6140740.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/6097662.html
实现cookie跨域访问 - 程序人生ly
需求:A系统(www.a.com)里设置一个浏览器cookie,B系统(www.b.com)需要能够访问到A设置的cookie。 通过HTML SCRIPT标签跨域写cookie: 由于html的script标签的src属性,可以支持访问任何域的资源,通过script发起一个get类型的网络请求,获
2016-11-24T06:21:00Z
2016-11-24T06:21:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】需求:A系统(www.a.com)里设置一个浏览器cookie,B系统(www.b.com)需要能够访问到A设置的cookie。 通过HTML SCRIPT标签跨域写cookie: 由于html的script标签的src属性,可以支持访问任何域的资源,通过script发起一个get类型的网络请求,获 <a href="https://www.cnblogs.com/lylife/p/6097662.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/5977574.html
使用轻量级Spring @Scheduled注解执行定时任务 - 程序人生ly
WEB项目中需要加入一个定时执行任务,可以使用Quartz来实现,由于项目就一个定时任务,所以想简单点,不用去配置那些Quartz的配置文件,所以就采用了Spring @Scheduled注解来实现了定时任务。在这里做个备注。 spring配置文件 xmlns中加入一段: 然后xsi:schemaL
2016-10-19T07:52:00Z
2016-10-19T07:52:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】WEB项目中需要加入一个定时执行任务,可以使用Quartz来实现,由于项目就一个定时任务,所以想简单点,不用去配置那些Quartz的配置文件,所以就采用了Spring @Scheduled注解来实现了定时任务。在这里做个备注。 spring配置文件 xmlns中加入一段: 然后xsi:schemaL <a href="https://www.cnblogs.com/lylife/p/5977574.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/5909980.html
Docker容器里时间与宿主机不同步 - 程序人生ly
docker容器里时间设置: 第一种: Dockerfile文件中添加一行:RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime或者 第二种: 进入到容器中,设置环境变量 export TZ=Asia/Shanghai 文件字符编码设置: 设
2016-09-26T09:30:00Z
2016-09-26T09:30:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】docker容器里时间设置: 第一种: Dockerfile文件中添加一行:RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime或者 第二种: 进入到容器中,设置环境变量 export TZ=Asia/Shanghai 文件字符编码设置: 设 <a href="https://www.cnblogs.com/lylife/p/5909980.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/5733798.html
Wildfly8 更改response header中的Server参数 - 程序人生ly
项目经过局方安全检查需要屏蔽掉服务器中间件信息,查了一下午,网上看到的都是修改jboss7的,我们使用的wildfly8(jboss改名为wildfly),修改地方不一样,折磨了半天。 jboss服务器缺省情况下会在HTTP response header中显示自身的标识,如下: 这样会暴露服务器信
2016-08-03T09:37:00Z
2016-08-03T09:37:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】项目经过局方安全检查需要屏蔽掉服务器中间件信息,查了一下午,网上看到的都是修改jboss7的,我们使用的wildfly8(jboss改名为wildfly),修改地方不一样,折磨了半天。 jboss服务器缺省情况下会在HTTP response header中显示自身的标识,如下: 这样会暴露服务器信 <a href="https://www.cnblogs.com/lylife/p/5733798.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/5728868.html
JBoss部署项目log4j配置会造成死锁问题,浏览器访问一直pending状态 - 程序人生ly
今天将项目部署到JBoss服务器上,部署成功后,浏览器访问页面一直在等待响应。 查了很长时间,最后在服务器上通过jstack pid命令查看Java堆栈信息,发现了有两个线程死锁。 看到造成死锁的原因是因为log4j往控制台上打印信息时候,于是修改了项目的log4j配置文件,修改为不在控制台输出,重
2016-08-02T04:58:00Z
2016-08-02T04:58:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】今天将项目部署到JBoss服务器上,部署成功后,浏览器访问页面一直在等待响应。 查了很长时间,最后在服务器上通过jstack pid命令查看Java堆栈信息,发现了有两个线程死锁。 看到造成死锁的原因是因为log4j往控制台上打印信息时候,于是修改了项目的log4j配置文件,修改为不在控制台输出,重 <a href="https://www.cnblogs.com/lylife/p/5728868.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/5692912.html
json-lib-2.4.jar Bug,json字符串中value为"[value]"结构时,解析为数组,不会解析成字符串 - 程序人生ly
使用json-lib.jar 2.4进行json字符串转换为对象时发现一个bug。贴下测试代码: 输出结果: 我测试了使用json-lib和阿里的fastjson,结果如上:发现json-lib把score的value当成了数组(本来是个字符串"[0-100]"),fastjson转换正常。
2016-07-21T11:30:00Z
2016-07-21T11:30:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】使用json-lib.jar 2.4进行json字符串转换为对象时发现一个bug。贴下测试代码: 输出结果: 我测试了使用json-lib和阿里的fastjson,结果如上:发现json-lib把score的value当成了数组(本来是个字符串"[0-100]"),fastjson转换正常。 <a href="https://www.cnblogs.com/lylife/p/5692912.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lylife/p/5671533.html
【转载】分享下多年积累的对JAVA程序员成长之路的总结 - 程序人生ly
注:该文是从百度贴吧转载过来,之前看到觉得写得还不错,对Java开发学习者来说很有意义的,可以看看。 我也搞了几年JAVA了,由于一向懒惰,没有成为大牛,只是一普通程序猿,不爱玩社交网站,不爱玩微博,唯独喜欢百度贴吧,潜水很久了,手痒来给新人分享下从新手成长为老鸟的已见,也刷刷存在感,应该不比曝照差
2016-07-14T11:46:00Z
2016-07-14T11:46:00Z
程序人生ly
https://www.cnblogs.com/lylife/
【摘要】注:该文是从百度贴吧转载过来,之前看到觉得写得还不错,对Java开发学习者来说很有意义的,可以看看。 我也搞了几年JAVA了,由于一向懒惰,没有成为大牛,只是一普通程序猿,不爱玩社交网站,不爱玩微博,唯独喜欢百度贴吧,潜水很久了,手痒来给新人分享下从新手成长为老鸟的已见,也刷刷存在感,应该不比曝照差 <a href="https://www.cnblogs.com/lylife/p/5671533.html" target="_blank">阅读全文</a>