摘要:背景介绍 我们在工作中难免会写一些重复性的代码,所以需要我们具备一定的抽象能力,比如把共同的逻辑抽取到抽象类中,也可以通过一些工具类来避免冗余代码 今天这篇文章就是把一个调用服务的重试功能抽取出一个工具类,以备复用。这里为了方便介绍,把调用服务简化成方法的调用,被调用的 foo 方法如下: ~~~ 阅读全文
posted @ 2020-02-14 10:13 每天晒白牙 阅读(213) 评论(0) 推荐(3) 编辑
摘要:现象描述 最近做了一个需求,用到了 预算 / 时间窗口数,其中预算是double类型,时间窗口数是int类型,其中时间窗口数我计算的有问题,会出现为0的情况(实际最小值应该为1),然后就出现了 一个double类型的数除以0的情况,分母为0,是不是要报 java.lang.ArithmeticExc 阅读全文
posted @ 2019-09-26 10:27 每天晒白牙 阅读(125) 评论(0) 推荐(0) 编辑
摘要:情景介绍 平时工作中,我习惯使用 rz 从本地上传文件到服务器, sz 从服务器下载文件到本地,但对传输文件大小有限制,例如排查线上jvm的问题,需要生成了dump文件,可能有10G大,超过了限制,怎么下载呢? 拆分文件命令之split 语法 或 l:指定每多少行切成一个小文件 b:指定每多少字节切 阅读全文
posted @ 2019-09-24 07:52 每天晒白牙 阅读(271) 评论(1) 推荐(0) 编辑
摘要:现象描述 最近做了一个需求,用到了 预算 / 时间窗口数,其中预算是double类型,时间窗口数是int类型,其中时间窗口数我计算的有问题,会出现为0的情况(实际最小值应该为1),然后就出现了 一个double类型的数除以0的情况,分母为0,是不是要报 java.lang.ArithmeticExc 阅读全文
posted @ 2019-09-16 22:41 每天晒白牙 阅读(398) 评论(0) 推荐(0) 编辑
摘要:1.Zookeeper的优点与局限性 在学习了Zookeeper(后文都简称zk)的介绍和功能后,您已经很好地理解了zk。 现在,在这个zk教程中,我们将讨论zk的优点和局限性。 zk有几个功能对用户非常有益,但同时也存在一些局限性,所以在我们使用zk前,必须先了解一下。让我们分别学习一下zk的优点 阅读全文
posted @ 2019-09-16 13:02 每天晒白牙 阅读(1063) 评论(1) 推荐(0) 编辑
摘要:描述 分析 lib包下有这个接口从属的jar包 读到这里先不要往下看,想下为何会报找不到类呢? 在打包时会同时生成一个MANIFEST.MF文件,描述了jar包的基本信息 Main Class 指定程序的入口,可以用java jar .jar 来启动 Class Path 指定jar包依赖关系,类加 阅读全文
posted @ 2019-09-15 19:32 每天晒白牙 阅读(6308) 评论(1) 推荐(0) 编辑
摘要:倒排索引架构 在广告系统中倒排索引起着至关重要的作用,当请求过来时,需要根据定向信息从倒排索引中匹配合适的广告。我们的倒排索引采用的是ElasticSearch(后面简称ES),考虑点是社区活跃,相关采集、可视化、监控以及报警等组件比较完善,同时ES基于java开发,所以调优和二次开发相对方便 先看 阅读全文
posted @ 2019-09-15 19:21 每天晒白牙 阅读(396) 评论(0) 推荐(0) 编辑
摘要:Kafka常用术语 Broker :Kafka的服务端即Kafka实例,Kafka集群由一个或多个Broker组成,主要负责接收和处理客户端的请求 Topic :主题,Kafka承载消息的逻辑容器,每条发布到Kafka的消息都有对应的逻辑容器,工作中多用于区分业务 Partition :分区,是物理 阅读全文
posted @ 2019-09-15 19:15 每天晒白牙 阅读(433) 评论(1) 推荐(0) 编辑
摘要:#### 简介 上次我们通过分析KafkaProducer的源码了解了生产端的主要流程,今天学习下服务端的网络层主要做了什么,先看下 KafkaServer的整体架构图 ![file](http://img2018.cnblogs.com/blog/1803159/201909/1803159-2 阅读全文
posted @ 2019-09-15 19:08 每天晒白牙 阅读(168) 评论(0) 推荐(0) 编辑