自适应限流 netflix-concurrency-limits一般的限流常常需要指定一个固定值(qps)作为限流开关的阈值,这个值一是靠经验判断,二是靠通过大量的测试数据得出。但这个阈值,在流量激增、系统自动伸缩或者某某commit了一段有毒代码后就有可能变得不那么合适了。并且一般业务方也不太能够正确评估自己的容量,去设置一个合适的限流阈值。 2020-05-12 Java #限流
J.U.C之AQS原理-CLH队列CLH 同步队列是一个 FIFO 双向队列,AQS 依赖它来完成同步状态的管理:当前线程如果获取同步状态失败时,AQS则会将当前线程已经等待状态等信息构造成一个节点(Node)并将其加入到CLH同步队列,同时会阻塞当前线程。当同步状态释放时,会将某个节点唤醒(是否首节点取决于公平锁/非公平锁),使其再次尝试获取同步状态。 2020-01-09 Java #AQS
如何判断SSL证书的私钥和证书匹配防止有人篡改证书或者私钥,导致网关无法解析,所以需要验证私钥和证书是否匹配。开始以为Java会有这种方法直接校验,网上找了一圈都没找到。翻了 `X509Certificate` 的源码,发现可以获取到公钥,那么也可以通过私钥获取到公钥,所以判断两个公钥是否相等就可以了。 2019-05-22 Java #SSL
记一次 Binlog 的应用我们现在遇到一个问题,每次在发券系统里面增加一个表操作的时候,都会实现缓存,实现了缓存就要实现通知刷新,所以程序里只要有更新的操作都要硬编码发送一次消息。这个过程维护成本太大,就想到是否有什么方法可以实现自动通知刷新。 2019-01-18 Mysql #Binlog
React 入门 (基础概念)开始的时候我是很抵触的,因为觉得后端写前端最后肯定会不三不四,之前也写过前后端全包的项目,但是对后面的工作都没什么帮助,所以觉得对个人发展也不是很好,而且全栈工程师在杭州需求也不多。没办法,公司就是不给配前端,只能一个人整,想想不能影响项目进度啊,最后倒霉还是自己,所以硬着头皮跳下去了... 2018-09-12 前端 #React
elastic-job 在广告系统中的实践总结一般来说,系统可使用消息传递代替部分使用作业的场景。两者确有相似之处。可互相替换的场景,如队列表。将待处理的数据放入队列表,然后使用频率极短的定时任务拉取队列表的数据并处理。这种情况使用消息中间件的推送模式可更好的处理实时性数据。 2017-12-26 Java #elastic-job
Guava Cache 在广告系统中的优化缓存,在我们日常开发中是必不可少的一种解决性能问题的方法。其主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。 2017-08-24 Java #Guava
Git 如何撤销分支的merge今天同事不小心把develop未测试的代码合并到了master,想取消这次合并,让分支回到位,肿么办?如果master上已经有了新的提交以及没有新的提交都该怎么办? 2017-08-10 Linux #Git
mybaits 关于游标状态closed的问题由于数据不断增加,查询的时候如果一次性加载出来,会导致mybaits的mapper对象非常大,可以选择分页但是觉得太麻烦了所以选择了游标。之前使用游标是jdbc自带的,没有遇到读取数据游标状态会closed的情况。 2017-06-06 Java #Mybaits