- 博客(124)
- 收藏
- 关注
原创 Cassandra集群搭建
最近搭建cassandra集群,网上就没找到靠谱的资料,官网上也没说清粗到底要怎么做。所以这里给出一个可行的方案。环境linux centos x86_64Cassandra 3.11.3 64位tar.gz包java 8python 2.7+ 机器 ip node1 192.168.0.1 node2 192.168.0.2 ...
2018-08-18 16:22:39
3027
1
原创 Raft协议详解(三)日志复制
在这一部分,我们讲Raft几个子问题中的日志复制问题。主要内容是讲Raft为什么要进行日志复制,以及如何进行日志复制的。日志复制(log replication)是leader的主要工作之一。在前面的第一、二部分,我们讲到了日志(log)是Raft的一致性保证非常重要的组成部分,很大程度Raft是利用log做的数据一致性。那么我们就来说说日志。日志是啥上图是Raft论文中的图片...
2018-06-08 12:45:42
3021
9
原创 Raft协议详解(二)服务器角色以及选主
我们在Raft协议详解(一) 中讲到。Raft协议会将需要保证一致性的数据保存在多台服务器上,集群中存在该数据的多个副本。那么问题来了。客户端不会向集群中的每台服务器都发送一次数据,他只会向其中某一台发送数据,那么应该发送给谁?另外,集群中多台服务器上的数据,可能由于网络、丢包、宕机等等问题,导致同一数据的不同副本不一样,那么以谁的为准等等问题。其实在Raft中,只要了解raft中各种角色状态...
2018-06-06 23:06:53
4173
3
原创 Raft协议详解(一)前言:子问题分解
分布式一致性,一直是分布式系统中非常重要的部分。在多机集群中,如何保证不同服务器上同一副本的数据是一致正确的,如何保证在故障频发的集群中数据能够安全保存等问题,都需要靠分布式一致性来解决。在对分布式一致性算法进行设计的时候,存在如下几点需要注意的地方: 1. 算法的正确性保证,不论在丢包、宕机、延迟等情况,都不能返回错误的结果 2. 只要大部分机器可以用,那么算法就可以正常运行 3. 不依靠...
2018-06-05 23:15:46
1369
1
原创 小小研究一下工作流WorkFlow
修房子在小牧老家农村,小时候总是看到村里有人在修房子。每次看到有人修房子的时候,他就会爬到房子面前的沙粒堆上去,翻找随着沙子一起被挖出来的贝壳。虽然也不知道拿来干嘛,不过总觉得收集贝壳很好玩。 小牧也喜欢看他们修房子。修房子的时候,专业的修房师傅会指导工人如何一步步修房子。第一步,首先要打地基,把地基打的牢牢的。第二步是浇筑地梁。在地基上面浇筑房子的核心骨架。第三步是盖造房子的主体结...
2018-04-28 15:48:43
1512
原创 志玲姐姐与程序运行杂谈
进入公司后,小牧开始进行了一些业务的研发工作。在校期间,他已经能够利用现有的框架进行编码了,比如他擅长的Spring来写java,用flask写个简单的python web等。但是他心里一直有一个疑惑: “我读了7年的计算机专业,学了很多基础知识,可是现在在公司工作,每天就写了简单的业务逻辑代码,那我学那么多什么编译原理操作系统的,有啥用呢?”今天午饭的时候,小牧趁着午饭间隙,和前辈...
2018-04-26 14:42:20
385
原创 ganglia自定义metric扩展
ganglia自定义metric扩展在使用ganglia时,直接安装后会发现他已经有了一些监控项。但是在大多数情况下,这些自带的监控项是不够用的,很多指标都没有。但是幸好的是ganglia提供非常方便的metric扩展机制,可以添加自己希望的监控项。网上也有很多文章是教如何进行metric扩展的,这里我就不讲了。但是有个问题,对于我这种懒人,要自定义监控项,就得去学习如何根据gangl...
2018-02-08 10:44:09
770
原创 Centos配置ssh免密码互信登录
突然一下要配免密码登录,发现忘了怎么配了,所以去网上查了一下。发现好多文章,写的非常专业,但是也非常复杂,对于我只需要做基本实验的人来说,那个太麻烦了,也搞不清楚。所以自己搞了一个非常简单的方法。
2017-10-26 22:23:46
1869
原创 ZStack消息流分析
从前端发起一个控制消息,到后台MN(Managementnode)接受处理,中间经历了哪些流程,消息是怎样一步步传输的?这篇博客,我们就以创建虚拟机为例,看看消息是怎么一步步处理的。
2017-09-18 22:40:56
1039
1
原创 高并发之限流
在应对高并发场景的时候,我们会采用多种方式来保证系统的高可用,尽量保证用户体验。而其中我们最常用的三把刀,就是限流、降级、缓存等。缓存,我们常用的可以用如redis之类的分布式缓存进行处理。降级,可以从服务降级、服务熔断的方式去做。而这篇文章,我们主要讨论一下关于限流方面的事情。限流,字面上解释就是当系统的访问增大,如QPS增大,此时我们需要对流量进行流量控制。这里我们讲讲几种常用的限流算法。1.计
2017-09-15 15:30:06
1339
原创 ZStack启动流程
这篇文章我们重点来看看zstack启动的过程中做了什么,如何启动起来的。github: https://github.com/SnailJie/ZstackWithComments.git
2017-09-07 19:56:42
3489
原创 深入分析单例模式
对于单例的编写,我们不仅仅需要知道可以那样写,还应该知道为什么可以那样写,还应该知道怎么想出可以那样写的。这样我相信才会对童鞋们帮助更大。
2017-08-04 09:29:03
429
原创 一起玩转java并发(3.1)java并发的底层机制和原理
在这部分呢,咱们主要讲的是关于java并发的底层实现机制,以及相应的理论原理。此块呢,在《java并发编程的艺术》里,属于第二三章。其实对于我们小菜鸟来讲,前面一来就整这么理论的东西,没看多久就容易头晕,然后看着看着就不知道他在讲啥了,知识串不起来。因此捏,我就把这块放到后面来讲。在有了前面的编程练习后,我们就来剥开并发的外衣,来看看他们衣服下面是什么……(嘿嘿嘿……)
2017-08-02 22:21:24
438
原创 一起玩转java并发(0)序言
以《java并发编程的艺术》为主线,结合动手编程与理论知识,可用于求职知识复习以及java菜鸟系统提升并发编程能力。(走过路过不要错过嘞~)
2017-08-02 10:37:32
372
原创 Mesos/Omega/Borg(K8S)/Firemament对比
Mesos、Omega、Borg(K8S)都是现在工业界中比较流行的集群调度系统。Firemament是OSDI’16发布的集群调度论文,也非常优秀,同时也提供了开源版本。因此这里对这几大调度系统进行一下深入的对比。
2017-05-23 09:48:28
2177
原创 NSDI'17-论文阅读[CherryPick:Adaptively Unearthing the Best Cloud Configurations for Big Data Analytics]
CherryPick是在刚过去的NSDI2017上发表的一篇文章。很欣喜地看到顶会论文作者上出现了阿里的身影。虽然不知道阿里在里面是什么角色……不过相对于只能看到微软或者谷歌的好多了这两年,不管是NSDI,还是OSDI,都有关于资源推荐预测的论文,可以看出这块现在关注度还挺高的。上次去参加的技术沙龙,和一家国内云厂商经理聊天,他们的下一步也是要做资源预测来辅助调度。那我们来一起看看这篇论文是怎么做
2017-05-19 14:12:05
3108
7
原创 zstack(四)zstack架构简介
本篇简单介绍一下zstack的架构设计。现在的zstack加入了一个新的模块woodpecher,用于自动化测试。由于本人对这块没有研究过,这里先不讲这个。
2017-04-27 16:16:09
5704
原创 ZStack(三)-zstack代码结构简介
本篇主要介绍一下ZStack开源版本的代码组成,简单介绍各个目录代码的作用。 从最新的官网上看,现在zstack项目有四部分组成,包括zstack、zstack-dashboard、zstack-utility、zstack-woodpecker
2017-04-26 00:39:34
5718
原创 zstack(0)前言
前言随着ZStack发展越来越好,云栖大会和阿里云合作也被更多人所了解,很多同学对这个国内开源的lass软件表现出了很大兴趣。近来发现还是有很多同学在关注ZStack,也有找到我交流关于ZStack的问题。我前面写ZStack的博客只是随手记录一下,没想到还是有人专门在关注,这对我鼓励非常大。因此为了系统地介绍zstack,以及输出更多高质量的关于zstack的文章供大家学习交流,我申请了这个专栏。
2017-04-17 20:17:37
1287
原创 分治&DP
分治的思想就是将大问题转化为小问题,通过小问题的求解,最终整合后成为大问题的解。做分治的题的时候,首先要分析题目,明确这道题是不是能够有降低规模求解。
2017-04-15 11:30:23
1757
原创 BackTracking回溯
回溯法是一个比较强大的方法。在我做题的时候,感觉主要是用在查找子集问题上。 通过分析,可以将问题转换为通过子问题来确定当前解。换句话说,f(i)的状态可以由f(i-1)来得出。说到这里感觉有点像动态规划。因此有的题可以用回溯,也能用DP。 感觉DP和回溯还是不同的。回溯在发现一条路走不通的时候,有回退操作。DP好像没有发现回退操作,只是在不断求解子问题。另外,DP问题感觉主要是求解一个最优值。虽
2017-04-09 16:18:06
371
原创 并查集- Union-Find
并查集(Union-Find)主要是用于解决连通问题。给定一些数据对,判断这些集合中连通量有 多少,或者判断给定两个点是否是连通。本篇博客主要是简要介绍并查集的结构,以及并查的优化
2017-03-19 22:33:18
828
原创 树-Tree
作为基本的数据结构,树在各种算法题中或者现实中有得到广泛的应用。除了基本的普通二叉树,衍生出了二叉排序树、红黑树、B+/B树等等。这里我们对树的一些基本的操作以及高级应用进行总结。
2017-03-18 21:49:03
454
原创 OSDI‘16-资源调度论文解读【Altruistic Scheduling in Multi-Resource Clusters】
OSDI作为计算机系统类的顶会,其中发表的论文的研究方向基本是计算机研究类的风向标,当前最受关注的。而本届OSDI中有四篇关于资源调度方面的文献(Cloud Systems Part),可以看出当前关于资源调度仍然是研究的重点。写这篇博客的目的是想以通俗易懂的方式交流调度,由于才疏学浅,文中理解错误之处欢迎指正以及批评拍砖。
2017-03-13 15:22:01
2933
3
原创 Two pointers
双指针,不是一种数据结构,只是一种解题技巧。主要使用场景为数组、链表。 那么在遇到题目时,我们怎么能考虑到使用双指针技巧呢?这里简单对思路进行一个总结,不完善的地方或者错误的地方跪求大家交流。
2017-03-08 22:44:44
538
原创 JAVA并发的底层实现
在java的多线程编程中,我们经常会使用一些关键字,如volatile,sychronized,atomic原子操作等等。那么在更加底层的JVM中,这些关键字是怎么实现其对应的效果的呢?
2017-03-05 23:30:53
564
原创 外观模式Facade
外观模式,实际上是我在开源软件ZStack中发现在其中进行了运用的。那什么是外观模式呢? 外观模式,实际上有点像肯德基的点餐窗口。我们在需要吃饭的时,只需要在窗口给店员说:我需要饮料和面包,而不用关心后厨如何去从饮料机接饮料、从面包机拿面包等等。“前台”就是我们所定义的外观模式。 因此外观模式的优点显而易见,那就是可以屏蔽调后面复杂的子系统,只需要使用统一的接口就好。当后台系统发生更换的时候,前
2017-03-04 21:28:02
450
原创 基于模型的智能测试
在DevOps盛行的今天,大家越来越关注软件自动化测试。在我的理解里,自动化测试有两种。由人工编写好各种测试用例,设计各种测试场景,然后通过软件、脚本去自动执行这样的测试。如常见的CI普遍采用这种测试方式。由人工对软件模型进行描述,由机器自动根据软件模型,生成测试用例,然后自动执行测试。第一种测试方式比较常见。我们主要讨论第二种测试方式。第二种测试方式,也是开源软件ZStack所采用的测试方式
2017-03-02 14:12:31
1584
原创 主流混合云管理平台分析
在现在的云计算发展过程中,混合云的需求越来越大,客户根据业务、或者是其他需求,都需要部署混合云,在一家公司中,可能会采用多种私有云虚拟化技术,多种不同的第三方云厂商提供的公有云服务。这样的需求势必需要一款能够支持混合云管理的软件。 那现有的混合云管软件有哪些呢?
2017-01-04 16:33:46
6536
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人