使用df -aT命令,发现根目录/对应的文件系统为ext3 Ext3文件系统结构与Ext2相似。用工具格式化磁盘或分区时, 会选择使用什么文件系统来格式化。若选用Ext2来格式化磁盘或分区, 则磁盘或分区的大部分空间被格式化成了许多个Inode和block两个数据结构。block有3种大小选项1K,2K,4K,可在格式化之前选择。Inode的大小固定为128bytes。每个文件都仅会占用一个Inode,Inode主要用来记录文件相关属性,比如权限、文件大小、修改时间等。block用来记录文件的数据,一个Inode可以关联多个block,且Inode记录一个block号码需要4byte。如果文件非常大的话,则Inode无法直接记录文件所包含的所有block号码。所以Ext2采用12个直接、1个间接、1个双间接、和1个三间接记录区,共需60bytes。 12个直接记录区直接指向带有文件数据的block。1个间接记录区指向一个无真实文件数据的block,此block充当Inode的扩展记录区,此block直接指向带有数据的block。若此扩展block为1K,那么它可记录256个block号码。双间接和三间接类似。
文件读取流程 1)通过挂载点信息找到/dev/sda2的inode号码为2,对应根目录/ 2) 经过上个步骤,由于owner root有r,w,x权限,可从inode取得根目录/的block,然后再从block中取得etc/目录的inode为3303105。这里etc/相当于根目录/的数据。
会话(Session) Session是指客户端会话,在讲解客户端会话之前,我们先来了解下客户端连接。在ZooKeeper中,一个客户端连接是指客户端和ZooKeeper服务器之间的TCP长连接。ZooKeeper对外的服务端口默认是2181,客户端启动时,首先会与服务器建立一个TCP连接,从第一次连接建立开始,客户端会话的生命周期也开始了,通过这个连接,客户端能够通过心跳检测和服务器保持有效的会话,也能够向ZooKeeper服务器发送请求并接受响应,同时还能通过该连接接收来自服务器的Watch事件通知。Session的SessionTimeout值用来设置一个客户端会话的超时时间。当由于服务器压力太大、网络故障或是客户端主动断开连接等各种原因导致客户端连接断开时,只要在SessionTimeout规定的时间内能够重新连接上集群中任意一台服务器,那么之前创建的会话仍然有效。 版本 ZooKeeper的每个ZNode上都会存储数据,对应于每个ZNode,ZooKeeper都会为其维护一个叫作Stat的数据结构,Stat中记录了这个ZNode的三个数据版本,分别是version(当前ZNode的版本)、cversion(当前ZNode子节点的版本)和aversion(当前ZNode的ACL版本)。
在 $HOME/.ssh/config 中加入以下内容: Host * ControlPersist yes ControlMaster auto ControlPath ~/.ssh/master-%r@%h:%p 这种方式第一次需要输入密码,然后一段时间内不需要输入密码了。 SSH 文件的结构及解释算法 本地系统的每个用户都可以维护一个客户端的 SSH 配置文件,这个配置文件可以包含你在命令行中使用 ssh 时参数,也可以存储公共连接选项并在连接时自动处理。你可以在命令上中使用 ssh 来指定 flag ,以覆盖配置文件中的选项。
Google authenticator是一个基于TOTP原理实现的一个生成一次性密码的工具,用来做双因素登录,市面上已经有很多这些比较成熟的东西存在,像是一些经常用到的U盾,以及数字密码等 实现源码 Google authenticator版本 https://github.com/google/google-authenticator-android
leader 选举 和 follower 信息同步 如上图所示,kafaka集群的 broker,和 Consumer 都需要连接 Zookeeper。 Producer 直接连接 Broker。