实战
文章平均质量分 93
每天晒白牙
Java后端开发,做过第三方支付、新零售和广告系统,大厂程序员(腾讯/58同城)
平时喜欢研究技术、读书
运营公众号:每天晒白牙
个人vx:dingaiminIT
展开
-
深度剖析:Redis分布式锁到底安全吗?看完这篇文章彻底懂了!
原创Magic Kaito水滴与银弹1周前收录于话题#近期文章列表23#分布式6#Zookeeper1#Redis6阅读本文大约需要 20分钟。大家好,我是 Kaito。这篇文章我想和你聊一聊,关于 Redis 分布式锁的「安全性」问题。Redis 分布式锁的话题,很多文章已经写烂了,我为什么还要写这篇文章呢?因为我发现网上 99% 的文章,并没有把这个问题真正讲清楚。导致很多读者看了很多文章,依旧云里雾里。例如下面这些问题,你能清晰地回答上来吗?...转载 2021-06-22 10:40:11 · 188 阅读 · 0 评论 -
如何快速判断一个用户是否访问过我们的 APP?
牙哥好久没更新公众号了,后面尽量多更,不关注阅读量,不关注新增和取关,希望你还在!背景牙哥所在部门是做广告系统的,所在小组主要做广告外投,即下图中 DSP 部分,当用户浏览媒体时,媒体通...原创 2020-08-10 11:50:00 · 902 阅读 · 0 评论 -
同事:把"重试"抽象出来做个工具类吧
背景介绍我们在工作中难免会写一些重复性的代码,所以需要我们具备一定的抽象能力,比如把共同的逻辑抽取到抽象类中,也可以通过一些工具类来避免冗余代码今天这篇文章就是把一个调用服务的重试功能抽取出一个工具类,以备复用。这里为了方便介绍,把调用服务简化成方法的调用,被调用的 foo 方法如下:publicstaticList<String>foo(){//没有显示抛出...原创 2019-12-18 21:18:45 · 410 阅读 · 0 评论 -
原创|ES广告倒排索引架构演进与优化
回顾之前分享了一篇文章 广告倒排索引架构与优化,介绍我们的ES广告倒排索引的架构与优化,我就不介绍了,建议先去看下这篇文章,再回来看这篇,下面只放下之前的架构图ES倒排索引演进采用 canal 监听 binlog 变更原有架构是在代码中写 MQ 消息,然后 index_builder 消费消息,写入到两个索引中。但这种方式有个不足是不能覆盖所有的订单或创意变更,所以倒排索引中的...原创 2019-12-02 13:07:31 · 776 阅读 · 1 评论 -
记一次线上问题及反思
背景介绍我们团队是做程序化广告的,我所在小组主要做 DSP 方向,对接外部 ADX,提供广告检索服务(对广告系统不熟悉的不要着急,后面有时间会给大家分享广告相关的文章)10 月 21 日上线了一个支持头条的需求,其实主要就是在展示和点击监控链接中增加了一个宏,比如请求 url 为:xxx.com/n/d/?fid=aaa&h_oaid={OAID},当我们的广告竞价成功后一般...原创 2019-10-25 08:30:27 · 406 阅读 · 0 评论 -
5分钟学linux命令之split
情景介绍平时工作中,我习惯使用rz从本地上传文件到服务器,sz从服务器下载文件到本地,但对传输文件大小有限制,例如排查线上jvm的问题,需要生成了dump文件,可能有10G大,超过了限制,怎么下载呢?拆分文件命令之split语法split [-<行数>][-l<行数>][-b<字节>][-C<字节>][要切割的文件][输出文件名的前缀][-...原创 2019-09-24 07:52:58 · 990 阅读 · 0 评论 -
明明有class为什么还是报ClassNotFoundException?
描述我们修改接口时,习惯发布一个快照版本用于测试。我们的一个服务也是发布了快照版本,然后一个jar程序要依赖这个服务,修改pom文件打包部署后,通过java-jar命令执行这个jar程序,然后你懂的启动后报错了Exceptioninthread"main"java.lang.NoClassDefFoundError...Causedby:java.lang.Class...原创 2019-09-12 11:18:08 · 3936 阅读 · 0 评论 -
广告倒排索引架构与优化
倒排索引架构在广告系统中倒排索引起着至关重要的作用,当请求过来时,需要根据定向信息从倒排索引中匹配合适的广告。我们的倒排索引采用的是ElasticSearch(后面简称ES),考虑点是社区活跃,相关采集、可视化、监控以及报警等组件比较完善,同时ES基于java开发,所以调优和二次开发相对方便先看下我们的倒排索引的架构图这个架构设计成如上图这样,经过了下面的思考与迭代...原创 2019-06-16 20:52:23 · 1413 阅读 · 0 评论 -
频繁FGC的真凶原来是它
上周排查了一个线上问题,主要现象是CPU占用过高,jvm old区占用过高,同时频繁fgc,我简单排查了下就草草收场了,但是过后我对这个问题又进行了复查,发现问题没有那么简单,下面跟着我一起分析一下到底是怎么回事?一定要先读完上篇文章 cpu占用过高和jvm old占用过高排查过程复查过程复查原因事后再看dump文件注意到最大的对象是一个ArrayList,里面几乎都是...原创 2019-05-13 07:04:43 · 15399 阅读 · 1 评论 -
cpu占用过高和jvm old占用过高排查过程
今天断断续续的收到管理平台的异常报警,cpu占用过高和jvm old占用过高,这个时候赶紧去排查原因,下面记录了我的排查过程,可能里面还有不正确的地方,欢迎各位大佬指正,也欢迎大家关于类似的案例一起交流,下面就看我关于这次排查的过程把报警 cpu使用率过高报警,接近100% 后续又来了jvm old过高报警 排查过程 首先打开监控平台看报警节点的cpu...原创 2019-05-08 22:17:43 · 3305 阅读 · 0 评论 -
用python从豆瓣爬取王祖贤的照片
发现实战真的是最好的学习方法!语言:pythonIDE:PyCharm前期准备:安装好python、chromedriver、浏览器XPath Helper插件这次演示爬取json格式的和html格式分别的处理方法首先先看json格式的先打开豆瓣,搜索“王祖贤”->选择图片->找到请求的url我们访问这个url,发现返回的数据是json格式的然...原创 2019-01-30 23:52:25 · 527 阅读 · 0 评论 -
Linux学习笔记之理解平均负载
我们常用top和uptime查看系统的负载情况,那什么是平均负载呢?平均负载:指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,即平均活跃进程数,它和cpu使用率没有直接关系。可运行状态的进程:正在使用cpu或者正在等待cpu的进程,也就是我们常用ps命令看到的,处于R状态(Running或Runnable)的进程不可中断状态的进程:正处于内核态关键流程中的进程,并且这些流程...原创 2018-11-24 17:21:24 · 1966 阅读 · 0 评论 -
Linux系统安装rz/sz命令
在公司服务器上上传文件通常使用 rz 命令,从服务器下载文件到本地采用 sz 命令。最近在学习nginx,自己在本机装了虚拟机,想上传文件发现 rz 命令不起作用,意识到linux服务器默认是没有 rz/sz命令的,需要我们自行安装。1.yum安装yum install -y lrzsz 2.编译安装先下载包 wget https://ohse.de/uwe/releases/...原创 2018-11-13 07:46:29 · 403 阅读 · 0 评论 -
记一次python解码模式和java不一样的坑
对接今日头条竞价异常查询接口,头条返回的数据是加密的,解密方式:1、对字符串进行base64解码生成中间串 s;2、然后,取key为发送数据时的key,取s的前10个字节作为初始向量iv,之后解密 利用key和iv对串s的16字节之后的部分进行AES解密即可附上文档截图:不得不服python的代码真是简洁,下面附上我写的丑陋的java代码public final stat...原创 2018-08-10 20:05:59 · 3256 阅读 · 1 评论 -
一次线上数据清洗的经历
最近上线了个需求,需要清洗线上数据库的数据。然后笔者就写了个简单的jar项目,通过jdbc直连数据库的形式,用sql操作数据库。但是我们要提前做好数据备份。1.将线上数据库备份,笔者最开始想到的是新建一个表,如下:create table user_bak select * from user;但这种方式需要有一定的权限。如果没有那么多权限该怎么搞?后来知道了mysqldump,如下:/opt/s...原创 2018-07-06 18:09:23 · 1925 阅读 · 0 评论