博客园 - 江湖前辈黄药师
uuid:7d267088-5232-4821-9010-8cd5fdd6cd4f;id=1073376
2021-04-15T12:26:33Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
feed.cnblogs.com
https://www.cnblogs.com/xxj0316/p/14664299.html
本地缓存不一致-记Jackson的MapSerializer序列化 - 江湖前辈黄药师
踩坑-现象 现象: 线上出现运费险查询接口返回结果不符合预期 且短时间内同样的请求参数返回结果不一致 同样的参数 短时间内返回结果不一致 对应api的业务逻辑没有改变 根本原因: seller-center应用使用的redisson用的jackson序列化 jackson序列化map时有坑 当map
2021-04-15T12:27:00Z
2021-04-15T12:27:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】踩坑-现象 现象: 线上出现运费险查询接口返回结果不符合预期 且短时间内同样的请求参数返回结果不一致 同样的参数 短时间内返回结果不一致 对应api的业务逻辑没有改变 根本原因: seller-center应用使用的redisson用的jackson序列化 jackson序列化map时有坑 当map <a href="https://www.cnblogs.com/xxj0316/p/14664299.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/12545161.html
java时间切片工具 时间切割 时间切分 - 江湖前辈黄药师
java时间切片工具 时间切割 时间切分 项目中经常会遇到根据根据时间区间来查询数据的场景, 如时间跨度大可能相应的sql的执行效率会显著降低, 因此可以对时间区间进行切割成若干个小范围的时间片, 这样不仅可以提高sql的性能还可以做一下并发执行, 提高整体查询的速度; java没有原生的api,或
2020-03-22T03:53:00Z
2020-03-22T03:53:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】java时间切片工具 时间切割 时间切分 项目中经常会遇到根据根据时间区间来查询数据的场景, 如时间跨度大可能相应的sql的执行效率会显著降低, 因此可以对时间区间进行切割成若干个小范围的时间片, 这样不仅可以提高sql的性能还可以做一下并发执行, 提高整体查询的速度; java没有原生的api,或 <a href="https://www.cnblogs.com/xxj0316/p/12545161.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/11646482.html
自己随便写点东西3 - 江湖前辈黄药师
有时候要测试一下某个功能的并发能力,又不要想借助于其他测试工具,索性就自己写简单的demo模拟一个并发请求就最方便了。如果熟悉jemter的测试某接口的并发能力其实更专业,此处只是自己折腾着玩。 CountDownLatch和CyclicBarrier是jdk concurrent包下非常有用的两个
2019-10-10T02:49:00Z
2019-10-10T02:49:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】有时候要测试一下某个功能的并发能力,又不要想借助于其他测试工具,索性就自己写简单的demo模拟一个并发请求就最方便了。如果熟悉jemter的测试某接口的并发能力其实更专业,此处只是自己折腾着玩。 CountDownLatch和CyclicBarrier是jdk concurrent包下非常有用的两个 <a href="https://www.cnblogs.com/xxj0316/p/11646482.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/11359611.html
自己随便写点东西 - 江湖前辈黄药师
有时候要测试一下某个功能的并发能力,又不要想借助于其他测试工具,索性就自己写简单的demo模拟一个并发请求就最方便了。如果熟悉jemter的测试某接口的并发能力其实更专业,此处只是自己折腾着玩。 CountDownLatch和CyclicBarrier是jdk concurrent包下非常有用的两个
2019-08-15T10:03:00Z
2019-08-15T10:03:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】有时候要测试一下某个功能的并发能力,又不要想借助于其他测试工具,索性就自己写简单的demo模拟一个并发请求就最方便了。如果熟悉jemter的测试某接口的并发能力其实更专业,此处只是自己折腾着玩。 CountDownLatch和CyclicBarrier是jdk concurrent包下非常有用的两个 <a href="https://www.cnblogs.com/xxj0316/p/11359611.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/10981179.html
自己随便写点东西 - 江湖前辈黄药师
有时候要测试一下某个功能的并发能力,又不要想借助于其他测试工具,索性就自己写简单的demo模拟一个并发请求就最方便了。如果熟悉jemter的测试某接口的并发能力其实更专业,此处只是自己折腾着玩。 CountDownLatch和CyclicBarrier是jdk concurrent包下非常有用的两个
2019-06-05T10:13:00Z
2019-06-05T10:13:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】有时候要测试一下某个功能的并发能力,又不要想借助于其他测试工具,索性就自己写简单的demo模拟一个并发请求就最方便了。如果熟悉jemter的测试某接口的并发能力其实更专业,此处只是自己折腾着玩。 CountDownLatch和CyclicBarrier是jdk concurrent包下非常有用的两个 <a href="https://www.cnblogs.com/xxj0316/p/10981179.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/10608870.html
单元测试之道 - 江湖前辈黄药师
一、前言 很多开发不写单测,可能是没有意识到单测的重要性,或者懒得写,这里单测的重要性就不多说了。还有一些同学写单测,但是基本上等于没写,比如像下面这种单测代码: @Test public void testSave() { ItemClassesForm form = new ItemClasse
2019-03-27T09:05:00Z
2019-03-27T09:05:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】一、前言 很多开发不写单测,可能是没有意识到单测的重要性,或者懒得写,这里单测的重要性就不多说了。还有一些同学写单测,但是基本上等于没写,比如像下面这种单测代码: @Test public void testSave() { ItemClassesForm form = new ItemClasse <a href="https://www.cnblogs.com/xxj0316/p/10608870.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/10608857.html
业务开发的基本要求 - 江湖前辈黄药师
上层业务系统开发原则 这里指的业务系统,特指web层业务系统,不包括底层基础服务(比如商品中心等提供dubbo服务的系统)这类系统的特点是直接面向B端商家或者C端用户,很多时候需要用户登录,大多提供http(https)服务,流量来源有PC页面、APP和H5。对于这类系统的开发,有一些通用的原则(或
2019-03-27T09:04:00Z
2019-03-27T09:04:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】上层业务系统开发原则 这里指的业务系统,特指web层业务系统,不包括底层基础服务(比如商品中心等提供dubbo服务的系统)这类系统的特点是直接面向B端商家或者C端用户,很多时候需要用户登录,大多提供http(https)服务,流量来源有PC页面、APP和H5。对于这类系统的开发,有一些通用的原则(或 <a href="https://www.cnblogs.com/xxj0316/p/10608857.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/10608622.html
git 分支管理规范 - 江湖前辈黄药师
1.从master拉一个新的release分支 例如:release***2.将feature/***分支或者hotfix/***分支合并到release***分支3.发布之前问一下群里,有没有其他人当天也发布代码(协调好时间顺序,务必上一个release***代码合并master后,再发布下一个)
2019-03-27T08:41:00Z
2019-03-27T08:41:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】1.从master拉一个新的release分支 例如:release***2.将feature/***分支或者hotfix/***分支合并到release***分支3.发布之前问一下群里,有没有其他人当天也发布代码(协调好时间顺序,务必上一个release***代码合并master后,再发布下一个) <a href="https://www.cnblogs.com/xxj0316/p/10608622.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/10366135.html
mybatis缓存 - 江湖前辈黄药师
一级缓存. Mybatis对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存,一级缓存只是相对于同一个SqlSession而言。所以在参数和SQL完全一样的情况下,我们使用同一个SqlSession对象调用一个Mapper方法,往往只执行一次SQL,因为使用SelSession第一次查询后
2019-02-12T09:35:00Z
2019-02-12T09:35:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】一级缓存. Mybatis对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存,一级缓存只是相对于同一个SqlSession而言。所以在参数和SQL完全一样的情况下,我们使用同一个SqlSession对象调用一个Mapper方法,往往只执行一次SQL,因为使用SelSession第一次查询后 <a href="https://www.cnblogs.com/xxj0316/p/10366135.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/9842712.html
git仓库迁移 - 江湖前辈黄药师
最近,装了git的本地服务器坏掉了, 没办法只能临时进行仓库的迁移 保证项目正常进行 在项目的根目录执行右键执行 查询当前仓库的远程地址 git remote -v 查看现有远程仓库的地址url 修改及添加远程地址 1.修改命令 git remote set-url origin URL 更换远程仓
2018-10-24T03:48:00Z
2018-10-24T03:48:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】最近,装了git的本地服务器坏掉了, 没办法只能临时进行仓库的迁移 保证项目正常进行 在项目的根目录执行右键执行 查询当前仓库的远程地址 git remote -v 查看现有远程仓库的地址url 修改及添加远程地址 1.修改命令 git remote set-url origin URL 更换远程仓 <a href="https://www.cnblogs.com/xxj0316/p/9842712.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/9771114.html
mybatis一级缓存二级缓存 - 江湖前辈黄药师
mybatis一级缓存二级缓存 一级缓存 Mybatis对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存,一级缓存只是相对于同一个SqlSession而言。所以在参数和SQL完全一样的情况下,我们使用同一个SqlSession对象调用一个Mapper方法,往往只执行一次SQL,因为使用S
2018-10-12T09:42:00Z
2018-10-12T09:42:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】mybatis一级缓存二级缓存 一级缓存 Mybatis对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存,一级缓存只是相对于同一个SqlSession而言。所以在参数和SQL完全一样的情况下,我们使用同一个SqlSession对象调用一个Mapper方法,往往只执行一次SQL,因为使用S <a href="https://www.cnblogs.com/xxj0316/p/9771114.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/9766974.html
CountDownLatch和CyclicBarrier模拟同时并发请求 - 江湖前辈黄药师
有时候要测试一下某个功能的并发能力,又不要想借助于其他测试工具,索性就自己写简单的demo模拟一个并发请求就最方便了。如果熟悉jemter的测试某接口的并发能力其实更专业,此处只是自己折腾着玩。 CountDownLatch和CyclicBarrier是jdk concurrent包下非常有用的两个
2018-10-10T07:57:00Z
2018-10-10T07:57:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】有时候要测试一下某个功能的并发能力,又不要想借助于其他测试工具,索性就自己写简单的demo模拟一个并发请求就最方便了。如果熟悉jemter的测试某接口的并发能力其实更专业,此处只是自己折腾着玩。 CountDownLatch和CyclicBarrier是jdk concurrent包下非常有用的两个 <a href="https://www.cnblogs.com/xxj0316/p/9766974.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/9712878.html
几种事务的隔离级别,InnoDB如何实现? - 江湖前辈黄药师
事务ACID特性,其中I代表隔离性(Isolation)。 什么是事务的隔离性? 隔离性是指,多个用户的并发事务访问同一个数据库时,一个用户的事务不应该被其他用户的事务干扰,多个并发事务之间要相互隔离。 一个事务怎么会干扰其他事务呢? 咱们举例子来说明,假设有InnoDB表: t(id PK, na
2018-09-30T08:15:00Z
2018-09-30T08:15:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】事务ACID特性,其中I代表隔离性(Isolation)。 什么是事务的隔离性? 隔离性是指,多个用户的并发事务访问同一个数据库时,一个用户的事务不应该被其他用户的事务干扰,多个并发事务之间要相互隔离。 一个事务怎么会干扰其他事务呢? 咱们举例子来说明,假设有InnoDB表: t(id PK, na <a href="https://www.cnblogs.com/xxj0316/p/9712878.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/9585190.html
JS判断当前设备是 PC IOS Andriod - 江湖前辈黄药师
JS判断当前设备是 PC IOS Andriod
2018-09-04T08:23:00Z
2018-09-04T08:23:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】JS判断当前设备是 PC IOS Andriod <a href="https://www.cnblogs.com/xxj0316/p/9585190.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/9554853.html
序列化与ArrayList 的elementData的修饰关键字transient - 江湖前辈黄药师
transient用来表示一个域不是该对象序行化的一部分,当一个对象被序行化的时候,transient修饰的变量不会被序列化 ArrayList的动态数组elementData被transient 修饰的 那么岂不是反序列化后的ArrayList丢失了原先的元素, 其实不然. ArrayList在序
2018-08-29T07:53:00Z
2018-08-29T07:53:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】transient用来表示一个域不是该对象序行化的一部分,当一个对象被序行化的时候,transient修饰的变量不会被序列化 ArrayList的动态数组elementData被transient 修饰的 那么岂不是反序列化后的ArrayList丢失了原先的元素, 其实不然. ArrayList在序 <a href="https://www.cnblogs.com/xxj0316/p/9554853.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/9548626.html
线程池ThreadPoolExecutor整理 - 江湖前辈黄药师
项目用到线程池,但是其实很多人对原理并不熟悉 ,这里只是整理一下 ThreadPoolExecutor java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类 构造方法 参数 corePoolSize 核心线程数 maximumPoolSize 最大
2018-08-28T07:40:00Z
2018-08-28T07:40:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】项目用到线程池,但是其实很多人对原理并不熟悉 ,这里只是整理一下 ThreadPoolExecutor java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类 构造方法 参数 corePoolSize 核心线程数 maximumPoolSize 最大 <a href="https://www.cnblogs.com/xxj0316/p/9548626.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/9540540.html
学习 - 江湖前辈黄药师
学习
2018-08-27T02:13:00Z
2018-08-27T02:13:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】学习 <a href="https://www.cnblogs.com/xxj0316/p/9540540.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/9474036.html
JAVA消息确认机制之ACK模式 - 江湖前辈黄药师
JMS API中约定了Client端可以使用四种ACK模式,在javax.jms.Session接口中: AUTO_ACKNOWLEDGE = 1 自动确认 CLIENT_ACKNOWLEDGE = 2 客户端手动确认 DUPS_OK_ACKNOWLEDGE = 3 自动批量确认 SESSION_T
2018-08-14T05:20:00Z
2018-08-14T05:20:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】JMS API中约定了Client端可以使用四种ACK模式,在javax.jms.Session接口中: AUTO_ACKNOWLEDGE = 1 自动确认 CLIENT_ACKNOWLEDGE = 2 客户端手动确认 DUPS_OK_ACKNOWLEDGE = 3 自动批量确认 SESSION_T <a href="https://www.cnblogs.com/xxj0316/p/9474036.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/9467182.html
jenkins自动部署应用到tomcat中,编译后shell脚本的简单示例 - 江湖前辈黄药师
jenkins的安装这里就不做描述了,很简单的 百度搜索一下即可 这里安装的jenkins-2.39-1.1 安装不是重点 重点是去配置jenkins 1.先配置好jenkins需要用到的其他外部组件 jdk,maven,git/svn 安装git: yum install git git地址使用命
2018-08-13T08:31:00Z
2018-08-13T08:31:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】jenkins的安装这里就不做描述了,很简单的 百度搜索一下即可 这里安装的jenkins-2.39-1.1 安装不是重点 重点是去配置jenkins 1.先配置好jenkins需要用到的其他外部组件 jdk,maven,git/svn 安装git: yum install git git地址使用命 <a href="https://www.cnblogs.com/xxj0316/p/9467182.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xxj0316/p/9454577.html
一次服务器磁盘空间不足导致的一系列问题 - 江湖前辈黄药师
继昨天服务器上应用 CPU占用过高 后面该应用宕掉了以后 java 一次CPU占用过高问题的排查及解决 今天又出现了更严重的问题 昨天解决完问题 今天早些时候 出现了系统无法登录 查询日志定位应该数数据库的问题 后面发现是磁盘满了 其实还是昨天的出现问题的导致, 死循环刷了特别多的日志,,导致磁盘空
2018-08-10T06:34:00Z
2018-08-10T06:34:00Z
江湖前辈黄药师
https://www.cnblogs.com/xxj0316/
【摘要】继昨天服务器上应用 CPU占用过高 后面该应用宕掉了以后 java 一次CPU占用过高问题的排查及解决 今天又出现了更严重的问题 昨天解决完问题 今天早些时候 出现了系统无法登录 查询日志定位应该数数据库的问题 后面发现是磁盘满了 其实还是昨天的出现问题的导致, 死循环刷了特别多的日志,,导致磁盘空 <a href="https://www.cnblogs.com/xxj0316/p/9454577.html" target="_blank">阅读全文</a>