
兴趣
天健胡马灵越鸟
精于理者,其言易而明;粗于事者,其言浮而狂。
展开
-
Git私有服务器搭建
一、服务器准备linux Centos7具体操作:1/ 安装Git:yum -y install git2/ 创建Git用户及用户组:groupadd git useradd git -g git3/ 在指定路径创建Git仓库路径 如:/opt/mkdir /opt/gitrepocd /opt/gitrepo初始化项目分支git init --bare webp给项目目录赋予git用户及用户组权限chown -R git:git webp/4原创 2020-05-13 16:14:30 · 1200 阅读 · 0 评论 -
Centos7下的zabbix安装与部署
1.Zabbix介绍 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 zabbix由2部分构成,zabbix server与可选组件zabbix agent。 zabbix server可以...转载 2019-11-26 10:07:45 · 287 阅读 · 0 评论 -
分布式理论(九) —— Paxos共识算法详解
在一个分布式系统中,由于节点故障、网络延迟等各种原因,根据CAP理论,我们只能保证一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)中的两个。对于一致性要求高的系统,比如银行取款机,就会选择牺牲可用性,故障时拒绝服务。MongoDB、Redis、MapReduce使用这种方案。对于静态网站、实时性较弱的查询类数据库,会...转载 2019-11-13 11:40:30 · 672 阅读 · 0 评论 -
分布式理论(八)—— Consistent Hash(一致性哈希算法)
前言在分布式系统中,常常需要使用缓存,而且通常是集群,访问缓存和添加缓存都需要一个 hash 算法来寻找到合适的 Cache 节点。但,通常不是用取余hash,而是使用我们今天的主角—— 一致性 hash 算法。今天楼主就来说说这个一致性 hash 算法。1. 为什么普通的 hash 算法不行?普通的 hash 算法通常都是对机器数量进行取余,比如集群环境中有 3 台 redis,...转载 2019-11-13 11:37:50 · 237 阅读 · 0 评论 -
分布式理论(七)—— 一致性协议之 ZAB
前言在前面的文章中,我们说了很多一致性协议,比如 Paxos,Raft,2PC,3PC等等,今天我们再讲一种协议,ZAB 协议,该协议应该是所有一致性协议中生产环境中应用最多的了。为什么呢?因为他是为 Zookeeper 设计的分布式一致性协议!1. 什么是 ZAB 协议? ZAB 协议介绍 ZAB 协议全称:Zookeeper Atomic Broadcast(Zookeeper ...转载 2019-11-13 11:36:47 · 305 阅读 · 0 评论 -
分布式理论(六)—— Raft 算法
前言我们之前讲述了 Paxos 一致性算法,虽然楼主尝试用最简单的算法来阐述,但仍然还是有点绕。楼主最初怀疑自己太笨,后来才直到,该算法的晦涩难懂不是只有我一个人这么认为,而是国际公认!所以 Paxos 算法在 1990 就发表出来,但却得不到运用。真正的名声大噪还是在兰伯特使用 “更简单” 的方式重写了一篇论文才开始。这些和今天说的 Raft 有什么关系呢?答:Raft 也是一个...转载 2019-11-13 11:35:44 · 267 阅读 · 0 评论 -
分布式理论(五)—— 一致性算法 Paxos
前言Paxos 算法如同我们标题大图:世界上只有一种一致性算法,就是 Paxos。出自一位 google 大神之口。同时,Paxos 也是出名的晦涩难懂,推理过程极其复杂。楼主在尝试理解 Paxos 算法的过程中历经挫折。今天,楼主不会讲推理过程,因为就算是尝试使用大白话来讲,也非常的难懂。当然更不会讲数学公式。而是从一个普通 Java 程序员的角度来理解 Paxos 算法。1...转载 2019-11-13 11:34:39 · 689 阅读 · 0 评论 -
分布式理论(四)—— 一致性协议之 3PC
前言我们说为了实现 BASE 理论,需要在可用性和一致性之间找到一个合适的一致性理论,于是,我们在上篇文章中了解了 2PC 理论,也就是两阶段提交,二阶段提交原理简单,实现方便,但是缺点则是同步阻塞,单点问题,数据不一致,过于保守。而为了弥补二阶段提交的缺点,研究者们在他的基础上,提出了三阶段提交。1. 什么是三阶段提交3PC,全称 “three phase commit”,是 2...转载 2019-11-13 11:32:34 · 211 阅读 · 0 评论 -
分布式理论(三)—— 一致性协议之 2PC
前言为了使系统尽量能够达到 CAP,于是有了 BASE 协议,而 BASE 协议是在可用性和一致性之间做的取舍和妥协。人们往往需要在系统的可用性和数据一致性之间反复的权衡。于是呢,就产生我们标题中的一致性协议,而且还不止一个呢。为了解决分布式问题,涌现了很多经典的算法和协议,最著名的就是二阶段提交协议,三阶段提交协议,Paxos 算法。本文重点介绍二阶段提交协议,简称 2PC。...转载 2019-11-13 11:31:18 · 259 阅读 · 0 评论 -
分布式理论(二)——Base 理论
前言在前文 分布式理论(一) —— CAP 定理 中,我们说,CAP 不可能同时满足,而分区容错是对于分布式系统而言,是必须的。最后,我们说,如果系统能够同时实现 CAP 是再好不过的了,所以出现了 BASE 理论,今天就来讲讲 Base 理论。1. 什么是 Base 理论BASE:全称:Basically Available(基本可用),Soft state(软状态),和 E...转载 2019-11-13 11:29:43 · 158 阅读 · 0 评论 -
分布式理论(一) —— CAP 定理
目录:什么是 CAP 定理 为什么只能 3 选 2 能不能解决 3 选 2 的问题 引用1. 什么是 CAP 定理2000 年的时候,Eric Brewer 教授提出了 CAP 猜想,2年后,被 Seth Gilbert 和 Nancy Lynch 从理论上证明了猜想的可能性,从此,CAP 理论正式在学术上成为了分布式计算领域的公认定理。并深深的影响了分布式计算的发展。CA...转载 2019-11-13 11:27:04 · 314 阅读 · 1 评论 -
PyQt5 教程 《控件Widgets II》
目录PyQt5控件IIQPixmap输入框(QLineEdit)QSplitter列表(QComboBox)PyQt5控件II在这里,我们将继续介绍PyQt5小部件。我们将介绍QPixmap,QLineEdit,QSplitter,和QComboBox。QPixmapAQPixmap是用于处理图像的小部件之一。它针对在屏幕上显示图像进行了优化。在我们的...翻译 2019-08-08 15:41:25 · 380 阅读 · 0 评论 -
PyQt5 教程 《控件Widgets》
目录PyQt5控件QCheckBox切换按钮(Toggle button)滚动条(QSlider)进度条(QProgressBar)QCalendarWidgetPyQt5控件窗口小部件是应用程序的基本构建块。PyQt5有各种各样的小部件,包括按钮,复选框,滑块或列表框。在本教程的这一部分中,我们将描述几个有用的小部件:aQCheckBox,QPush...翻译 2019-08-08 15:40:06 · 1208 阅读 · 0 评论 -
一致性hash算法原理
一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 但现在一致性hash算法在分布式系统中也得到了广泛应用,研究过memcached缓存数据库的人...转载 2019-05-15 08:48:31 · 606 阅读 · 0 评论 -
Merkle Tree(默克尔树)算法解析
转载~Merkle Tree(默克尔树)算法解析 /*最近在看Ethereum,其中一个重要的概念是Merkle Tree,以前从来没有听说过,所以查了些资料,学习了Merkle Tree的知识,因为接触时间不长,对Merkle Tree的理解也不是很深入,如果有不对的地方,希望各位大神指正*/ Merkle Tree概念 Merkle...转载 2019-05-15 16:51:29 · 3622 阅读 · 0 评论 -
GIt版本控制
版本控制Git一.Git是什么版本控制工具!Git是目前世界上最先进的分布式版本控制系统(没有之一)。这个软件用起来就应该像这个样子,能记录每次文件的改动这样,你就结束了手动管理多个“版本”的史前时代,进入到版本控制的20世纪。二.Git发展史cvs --svn在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并...转载 2019-05-17 09:16:16 · 454 阅读 · 0 评论 -
Linux/Windows VIM python 编辑环境搭建及遇到问题解决
前言: 之前花了很多时间搭建了几套平台不一样的vim编辑环境,好处也很明显,最起码知道了vim编辑器各个模块得配置及调用关系,也明白那句流传很广的话,不要贪多,从简单到高深,有个过程,先把技能一点点捡到自己篮子里才是正理,不然徒增烦恼,浪费时间(这里大多数指下载或copy别人配置,然后拉起来一堆堆的错误~)注意事项:1.注意vim与python版本必须一致,python如...原创 2019-07-08 09:52:13 · 992 阅读 · 0 评论 -
PyQt5 教程 《PyQt5简介》
PyQt5 tutorial原文链接:http://zetcode.com/gui/pyqt5/之前一直想学习PythonGUI编程,苦于各种帖子资料零散,随决定翻译一篇资料,以达到学习的目的:这是PyQt5教程。 本教程适合初学者和中级程序员。 阅读本教程后,您将能够编写一般的PyQt5应用程序。目录介绍日期和时间第一个项目菜单和工具栏布局管理事件和信号对话框控件Widget...翻译 2019-08-08 09:54:51 · 2022 阅读 · 0 评论 -
PyQt5 教程 《日期和时间》
导读目录导读PyQt5的日期和时间QDate,QTime,QDateTime当前日期和时间UTC时间天数天数的差异日期时间算术夏令时Unix时代Julian day历史战役PyQt5的日期和时间PyQt5教程的这一部分展示了如何在PyQt5中使用日期和时间。QDate,QTime,QDateTimePyQt5有QDate,QDat...翻译 2019-08-08 11:01:41 · 1511 阅读 · 0 评论 -
PyQt5 教程 《第一个项目》
导读目录导读PyQt5中的第一个程序简单的例子应用程序图标显示工具提示关闭一个窗口Message Box消息框屏幕上的中心窗口PyQt5中的第一个程序在PyQt5教程的这一部分中,我们学习了一些基本功能。这些示例显示工具提示和图标,关闭窗口,显示消息框并在桌面上居中显示窗口。简单的例子这是一个显示小窗口的简单示例。然而,我们可以用这个窗口做很...翻译 2019-08-08 11:41:58 · 3138 阅读 · 0 评论 -
PyQt5 教程 《菜单和工具栏》
目录导读PyQt5中的菜单和工具栏QMainWindow的状态栏简单的菜单子菜单检查菜单上下文菜单工具栏把它放在一起PyQt5中的菜单和工具栏在PyQt5教程的这一部分中,我们创建了一个状态栏,菜单栏和工具栏。菜单是位于菜单栏中的一组命令。工具栏上的按钮包含应用程序中的一些常用命令。状态栏显示状态信息,通常位于应用程序窗口的底部。QMainWin...翻译 2019-08-08 15:05:31 · 562 阅读 · 0 评论 -
PyQt5 教程 《布局管理》
目录PyQt5中的布局管理绝对定位盒子布局QGridLayout复习示例PyQt5中的布局管理布局管理是我们将小部件放置在应用程序窗口上的方式。我们可以使用绝对定位或布局类来放置小部件。使用布局管理器管理布局是组织窗口小部件的首选方式。绝对定位程序员以像素为单位指定每个小部件的位置和大小。当您使用绝对定位时,我们必须了解以下限制:如果我们调整窗口大小,...翻译 2019-08-08 15:32:12 · 1231 阅读 · 0 评论 -
PyQt5 教程 《事件和信号》
目录PyQt5中的事件和信号事件信号和插槽重新实现事件处理程序事件对象事件发送者发出信号PyQt5中的事件和信号原文链接:http://zetcode.com/gui/pyqt5/eventssignals/在PyQt5编程教程的这一部分中,我们将探索应用程序中发生的事件和信号。事件GUI应用程序是事件驱动的。事件主要由应用程序的用户生成。但它们也可...翻译 2019-08-08 15:36:56 · 767 阅读 · 0 评论 -
PyQt5 教程 《对话框》
目录PyQt5中的对话框QInputDialogQColorDialogQFontDialogQFileDialogPyQt5中的对话框对话框窗口或对话框是大多数现代GUI应用程序中不可或缺的一部分。对话框被定义为两个或更多人之间的对话。在计算机应用程序中,对话框是用于与应用程序“对话”的窗口。对话框用于输入数据,修改数据,更改应用程序设置等。QInpu...翻译 2019-08-08 15:38:27 · 983 阅读 · 0 评论