October 17, 2018

记一次线上问题排查

背景

先介绍下背景。

在滴滴,服务部署在弹性云上面。弹性云是一种动态可伸缩的服务器,底层是通过docker的方式创建的虚拟机而不是物理机。

本次发布的应用Maybach共五台机器,分为3批发布,第一批和第二批各一台机器,第三批3台机器。

现象描述

14:34分开始发布第一批机器,14:35第一批机器部署成功。

14:45发布第二批机器,14:46发布成功。

登录已经发布的两台线上机器查看,服务正常运行(进程还在),且能正常打印请求log(能正常接收服务),调用方无明显异常,业务数据无明显异常,无业务监控报警。

14:58发布最后一批机器。

14:59第三台(最后一批第一台)机器......

September 09, 2018

时间波之时间裂缝说

这是09年上大一的时候无聊写的一篇文章,备份于此。

题记:伟大的发现往往需要天马行空的想象力。

  一直以来,我都在思考一个问题:时间到底是什么?(即时间的本质是什么?)时间从何而来?消失的时间又到哪里去了?时间有哪些内在的性质。这个问题很难,困扰了我很长的一段时间。在这段时间里,苦思不得,搞得我心神不宁。终于,突然的灵光一闪,让我的大脑异常清晰,思路豁然开朗,初步形成了“时间波”(姑且称之为“时间波”,这也是个人看法)这个概念。

  众所周知,光也是一种波,我想时间会不会也是一种特殊的未知的波呢?按照这个设想一直往下推理,我得出了我的看法:时间也是一种特殊的波,这种波具有“波物二像性”......

July 15, 2018

Quartz分享

1. What

1. 简单介绍

Quartz是由OpenSymphony公司开源的一个定时任务调度框架,完全由Java开发。有以下的特点:

强大的调度功能。支持丰富多样的调度方法,可以满足各种常规及特殊需求。

灵活的应用方式。支持任务和调度的多种组合方式,支持调度数据的多种存储方式。

分布式和集群能力。

容易与其他框架集成,使用简单。

Quartz支持几乎以下所有的触发方式

在一天中的任意时刻(可以精确到毫秒)。

一周中特定的一些天。

一个月中特定的一些天。

一年中特定的一些天。

不在日历列表中注册的一些天(比如节假日)。

循环特定的次数。

无限循环。

按照一定的时间间隔循......

April 21, 2018

Java8收集器学习

·收集器是一种通用的,从流生成复杂值的结构。只需要把生成器作为参数传给collect()方法,任何流都可以使用它。

Java8中所有的收集器都是位于java.util.stream.Collectors这个包下面。

转换成其他集合

Collectors.toList()收集器把流中数据转换成List对象。

Collectors.toSet()收集器把流中数据转换成Set对象。

Collectors.toCollection()收集器把流中数据转换成Collection对象。

toCollection()收集器可以接受一个函数作为参数,用来指定生成的集合类型。比如指定生成的集合是TreeS......

April 07, 2018

一个简单的任务调度系统的实现

在实际工作中经常会需要定时任务调度,比如每隔5分钟检查下订单的状态,每天早上发送8点发送邮件等等。