AlstonWilliams's Blog

Thinking will not overcome fear but action will.

docker-the-input-device-is-not-a-TTY

在cron中使用docker exec -ti mysql mysqldump -A -u root -proot > /mysql_dump/all_dbs_$(date -I)命令备份docker内的mysql数据库时,遇到的这个问题. 解决方法很简单,只需要去掉上面的命令中的-ti即可.

cron命令如何查错

当我们使用crontab -e命令设定一个定时任务时,由于crontab并没有自动纠错功能,所以即使我们的命令出错也不得而知. 其实cron命令会在我们的命令执行出错时,给命令的设定者发送一封邮件,这封邮件中就包含了cron在执行命令时的错误信息. 但是,如果发送邮件时出现错误呢?这样我们收不到邮件,就不知道究竟是不是出错了,以及哪里出错了. 如果你没有收到邮件,那么就要查看/var/...

android自定义控件找不到属性

用Android开发,为了重用,少不了自定义组件.这类教程网上不少,这里就不说了. 这里说另一个问题,就是在xml文件中使用自定义控件时,找不到属性的问题.如果你把自定义组件放在com.projecthome.meizhuang.Component包中,然后通过下面的代码来引用它: <com.projecthome.meizhuang.Component.UpDownItem ...

ZooKeeper源码解析(9)-几种RequestProcessor

在ZooKeeper源码解析(7)-请求处理(上)和ZooKeeper源码解析(8)-请求处理(下)中,我们已经介绍过了,ZooKeeperServer主要就是通过RequestProcessor来进行生产链似的处理请求. 那么,在这篇文章中,我们就来介绍一下这几种RequestProcessor. 几种RequestProcessor的实现 在ZooKeeper中,主要有下面几种Re...

ZooKeeper源码解析(8)-请求处理(下)

在ZooKeeper源码解析(7)-请求处理(上)的末尾,我们只是提到主要处理请求的方法是PreRequestProcessor中的pRequest()方法,而并没有深入的介绍这个方法的实现. 在这篇文章中,我会介绍创建节点这种请求的处理过程.其他的请求,跟它类似,就不一一深入介绍了. 我们先大体看一下pRequest()方法的实现. 我们可以看到,对于每个请求,都会创建对应的Re...

ZooKeeper源码解析(7)-请求处理(上)

在前面的文章中,我们分析了Cluster模式的启动过程,以及Zab的实现. 在这篇文章中,我们会详细介绍,ZooKeeper是如何处理每个请求的. ## 过程 在ZooKeeper源码解析(3)-Cluster启动过程解析这篇文章中,我们介绍了,Cluster模式在启动时,会创建一个用户创建ServerCnxn的ServerCnxnFactory.默认情况下是NIOServerCnxn...

ZooKeeper源码解析(6)-Zab实现解析

在阅读了Zab的论文«Zab:High-performance broadcast for primary-backup systems»之后,总感觉对Zab还是一头雾水.于是,就阅读了ZooKeeper中相关的部分的源码来了解了一下. 在写这篇文章的时候,部分是参考了网上的一篇我认为写的不错的文章:荐 ZooKeeper的一致性算法赏析 上面的那篇文章中,基本上已经介绍的八九不离十了,...

ZooKeeper源码解析(5)-Snapshot文件的格式

在ZooKeeper的Snapshot文件中,存储了当时ZooKeeper的状态和数据. 那么ZooKeeper中到底存储了什么内容呢?官方文档中没有明确说明,所以我们只好通过读源码来获取. 我是在读完相关的部分的源码之后,总结出来的这样一个结构.我是通过源码中相关类的serialize()方法和deserialize()方法来总结的. 下面我们将会详细解释其中每一部分的作用. ...

ZooKeeper源码解析(4)-TxnLog文件格式

在上篇文章中,我们介绍了ZooKeeper中Snapshot文件的格式.在这盘文章中,我们将会介绍TxnLog文件的格式. 在ZooKeeper中,Transaction代表一次客户端操作,而TxnLog文件就保存了这些Transaction.从ZooKeeper中的FileTxnSnapLog类中,我们可以看到其格式如下: FileHeader TxnList ZeroPad Fil...

ZooKeeper源码解析(3)-Cluster启动过程解析

ZooKeeper启动时,有两种模式,第一种是单例模式,这也是默认模式,第二种是cluster模式.今天我们就来探究Cluster模式下,ZooKeeper模式是如何启动的. 启动过程 Cluster模式下的入口为org.apache.zookeeper.server.quorum. 那么,Cluster模式下,节点是如何一步步启动起来的呢? 从上面的这幅图片中,我们可以看到,就...