Raft算法笔记

最近看了DDIA,对于分布式共识算法很感兴趣,可以说共识算法是分布式的基石,而 Raft 算法又是共识算法中最简单的一个,Raft算法是一个专门用于管理日志复制的共识算法。共识(consensus)是大家关心的某件事情(比如选举、分布式锁、全局ID、数据复制等等)达成一致的过程及其算法。 Raft算法诞生与2013年,论文名字叫作《In Search of an Understandable Consensus Algorithm》,寻找一个更加容易理解的共识算法,从名字就能看出来,作者对 Paxos 的绝望。

技术随笔

Kafka为什么这么快?

Kafka为什么这么快(吞吐性高)?kafka作为一个处理实时数据和日志的管道,每秒可以处理几十万条消息,那么为什么Kafka的吞吐量这么高呢? 我们先来看一下Kafka的文件存储系统:

技术随笔

理解Jvm Class文件结构

理解Jvm Class 文件结构Class 文件结构如下: 123456789101112131415161718ClassFile { u4 magic; //Class 文件的标志 u2 minor_version;//Class 的小版本号 u2 major_version;//Class 的大版本号 u2 constant_pool_count;//常量池的数量 cp_info constant_pool[constant_pool_count-1];//常量池 u2 access_flags;//Class 的访问标记 u2 this_class;//当前类 u2 super_class;//父类 u2 interfaces_count;//接口 u2 interfaces[interfaces_count];//一个类可以实现多个接口 u2 fields_count;//Class 文件的字段属性 field_info fields[fields_count];//一个类可以有多个字段 u2 methods_count;//Class 文件的方法数量 method_info methods[methods_count];//一个类可以有个多个方法 u2 attributes_count;//此类的属性表中的属性数 attribute_info attributes[attributes_count];//属性表集合} 下面的这个图更加直观: 使用010 Editor 打开 Hello.class 可以更加直观的查看

技术随笔

你会使用 git zsh alias 吗?

Git 可以说是每个开发者必备的技能了,使用source tree之类的图形工具的同时,最好能修炼一下git命令行技能,在某种程度上可以让你更加高效的操作,也能在你ssh到远程机器上操作的时候能够临阵不慌,同时在工作中也能体会到git + zsh操作的方便之处。

技术随笔

理解docker-compse中的网络连接

读《Docker从入门到实践》https://yeasy.gitbooks.io/docker_practice/compose/usage.html 中的docker-compose一章,在遇到下面一段代码: 12345678910111213from flask import Flaskfrom redis import Redisapp = Flask(__name__)redis = Redis(host='redis', port=6379)@app.route('/')def hello(): count = redis.incr('hits') return 'Hello World! 该页面已被访问 {} 次。\n'.format(count)if __name__ == "__main__": app.run(host="0.0.0.0", debug=True)

技术随笔

React 组件参数传递

一、父组件向子组件传值父组件向子组件传值直接使用props进行传值,比如下面Root想要传值给Left,父组件Root里面直接引用子组件Left,并且通过组件的属性name传递给子组件,子组件在自己的内部,直接使用this.props.name来获取传递过来的值。

技术随笔

使用Manjaro Linux + i3wm心得

所有的熟悉都是从陌生开始的。 在使用3个月manjaro linux +i3wm之后我打算写一篇文章来记录一下心得,首先说一下,这篇文章并不是教程,只是分享一下使用心得。在这几个月使用期间,从刚开始的懵,到最后熟练使用效率大大提升,以至于使用gnome 或者windows桌面的时候各种不适应接下来会分成两部分来写,第一部分是manjaro linux,第二部分是i3wm。 一、基于arch的manjaro linux在使用Manjaro之前使用了大约1个月时间的Deepin Linux,界面确实很华丽漂亮,但是在Deepin的下面很多界面会有卡顿的感觉,比如启动器界面,以及多任务切换的时候,还有一个重要原因:我的蓝牙耳机 Fiil Diva 连上之后断断续续,基本不能用,而在Manjaro下面可以完美使用。

技术随笔

Kafka入门

1.环境配置kafka依赖zookeeper来调度,以及选举leader,因此需要先安装zookeeper 1.1 安装zookeeper点击下载zookeeper下载合适版本的zookeeper,当前最新的稳定版本是3.4.9创建好数据目录,命名为data,下一步配置用到 12$ cd opt/ && tar -zxf zookeeper-3.4.6.tar.gz && cd zookeeper-3.4.6$ mkdir data 1.2 配置zookeeper123456$ vi conf/zoo.cfgtickTime=2000dataDir=/path/to/zookeeper/dataclientPort=2181initLimit=5syncLimit=2 1.3 启动zookeeper1$ bin/zkServer.sh start 相应的停止zookeeper的命令为: 1$ bin/zkServer.sh stop 1.4 启动zookeeper CLI1$ bin/zkCli.sh

技术随笔

cURL命令的使用

Linux curl命令的使用 参考官方文档 https://curl.haxx.se/docs/manpage.html 一、什么是cURL wikipedia中的解释如下: cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。 cURL支持的通信协议有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。 简单的说,cURL就是把发出请求然后得到响应并把响应数据显示到标准输出上的一个命令行工具。 语法: curl [option] [URL] 二、cURL的用法1. 保存curl的结果到文件curl -o [filename] [URL] 比如要保存 http://zeusjava.com 到blog.html中,可以使用 curl -o blog.html http://zeusjava.com 当然,也可以直接用 curl http://zeusjava.com >blog.html 1$ curl -o blog.html http://zeusjava.com 使用 -o 也可以用于下载文件 curl -o android-studio-2.0.exe https://dl.google.com/dl/android/studio/install/2.0.0.20/android-studio-bundle-143.2739321-windows.exe 使用 -O可以将下载的文件名自动命名为服务器端文件的名字 curl -O https://dl.google.com/dl/android/studio/install/2.0.0.20/android-studio-bundle-143.2739321-windows.exe

技术随笔

vue.js学习笔记(二)

继续上一篇文章,中间耽误了一个多星期,去面试和复习以前的代码,继续愉快的的vue.js学习之旅 :)… 列表渲染vue.js的v-repeat指令用来根据相对应的ViewModel的对象数组来渲染列表。 简单示例html代码: 12345<ul id="demo"> <li v-repeat="items" class="item-{{$index}}"> {{$index}} : {{parentMsg}} {{childMsg}} </li></ul> js代码: 12345678910var demo = new Vue({ el: '#demo', data: { parentMsg: '你好', items: [ { childMsg: '赵' }, { childMsg: '宏轩' } ] }}) 这些子实例继承父实例的数据作用域,因此在重复的模板元素中你既可以访问子实例的属性,也可以访问父实例的属性。还可以通过$index属性来获取当前实例对应的数组索引。

技术随笔
12

本站由 Hank Zhao 使用 Stellar 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
本站总访问量