自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 资源 (1)
  • 收藏
  • 关注

原创 paxos算法简单理解

本文是看了知乎上面一位牛人的回答有感而发。现在将原文地址链接如下:https://www.zhihu.com/question/19787937首先我们需要了解什么是paxos算法:paxos算法是一种分布式一致性算法,主要任务是为了解决分布式中的一致性问题,那么什么是分布式中的一致性问题,可以看看上一篇博客:分布式事务中的算法策略概念介绍:A. 法定集合: 法定集合就是指的超过一半数

2016-11-12 12:51:09 3588

原创 分布式事务中的算法,策略

这几天在看>这本书,看到了分布式事务相关的内容,这里记录一下:1. 分布式事务,如果了解过数据库事务就知道ACID原则,那么我们从最基础的知识开始:A:什么是事务: 个人理解,事务就是对数据的一次完整的操作的逻辑单元,在这个逻辑单元中可以包含多个操作,比如增加。B:什么是分布式:个人理解,分布式是相对于集中式而言的,举个例子:集中式就是国内警察的枪支管理,每天到库房取用,用完之后放回库

2016-11-09 16:21:48 1207

原创 zookeeper基础搭建

Apache ZooKeeper 是一个面向分布式应用程序的高性能协调服务器。它使用一个简单的接口暴露公共服务(比如命名和配置管理、同步和组服务),让用户不必从头开始编程。它为实现共识、组管理、领导者选举和到场协议(presence protocol)配备了现成的支持。

2016-11-02 23:10:25 372

转载 linux makefile文件

目的:       基本掌握了 make 的用法,能在Linux系统上编程。环境:       Linux系统,或者有一台Linux服务器,通过终端连接。一句话:有Linux编译环境。准备:       准备三个文件:file1.c, file2.c, file2.h       file1.c:              #include             

2016-10-29 12:21:48 357

原创 shell中日志输出重定向

shell中可能经常能看到:>/dev/null 2>&1命令的结果可以通过%>的形式来定义输出分解这个组合:“>/dev/null 2>&1” 为五部分。1:> 代表重定向到哪里,例如:echo "123" > /home/123.txt2:/dev/null 代表空设备文件3:2> 表示stderr标准错误4:& 表示等同于的意思,2>&1,表示2的输出重定

2016-10-24 13:52:58 14847

转载 关于typedef的用法总结

不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容(红色部分是我自己写的内容)。用途一:定义一种类型的别

2016-10-21 21:31:12 265

转载 Linux signal函数理解

signal()函数理解在 这个头文件中。signal(参数1,参数2);参数1:我们要进行处理的信号。系统的信号我们可以再终端键入 kill -l查看(共64个)。其实这些信号时系统定义的宏。参数2:我们处理的方式(是系统默认还是忽略还是捕获)。一般有3中方式进行操作。(1)eg: signal(SIGINT ,SIG_ING );//SI

2016-10-18 10:01:29 1029

转载 在linux下搭建git环境

1、创建Github账号,https://github.com2、Linux创建SSH密钥:[plain] view plain copyssh-keygen  ##一直默认就可以了  3、将公钥加入到Github账户信息Account Settings->SSH Key4、测试验证是否成功。[plain] view

2016-10-17 11:17:36 456

转载 TCP长连接与短连接的区别

当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的经典的三次握手示意图:经典的四次握手关闭图:2. TCP短连接我们模拟一下TCP短连接的情况,client向

2016-10-15 16:50:40 219

转载 云计算分层的概念

“云服务”现在已经快成了一个家喻户晓的词了。如果你不知道PaaS, IaaS 和SaaS的区别,那么也没啥,因为很多人确实不知道。“云”其实是互联网的一个隐喻,“云计算”其实就是使用互联网来接入存储或者运行在远程服务器端的应用,数据,或者服务。任何一个使用基于互联网的方法来计算,存储和开发的公司,都可以从技术上叫做从事云的公司。然而,不是所有的云公司都一样。不是所有人都是C

2016-10-12 16:23:53 5181

转载 shell实例手册

shell实例手册0说明{    手册制作: 雪松    更新日期: 2013-12-06    欢迎系统运维加入Q群: 198173206    请使用"notepad++"打开此文档,"alt+0"将函数折叠后方便查阅    请勿删除信息,转载请说明出处,抵制不道德行为。    错误在所难免,还望指正!    # shell实例手

2016-10-08 11:42:04 3936

原创 docker之dockerFile(解决hosts,hostname问题)

以前自己使用docker的方式都是直接使用镜像来进行创建,今天尝试了一下使用dockerfile来进行创建,发现似乎这才更加符合docker的思想-----在原始镜像上面添加改动层,然后更具改动创建自己的镜像文件。(不知道理解是否有错误)。首先我们来了解一些dockerfile的基本语法:在Dockerfile中用到的命令有FROM FROM指定一个基础镜像, 一般情况下一个可用的

2016-09-26 12:34:56 41031 4

原创 linux docker初探

由于这几天找工作的需要复习一下自己以前学习过的hadoop,自己想从新搭建一个hadoop集群,顺便再从新学习一下,自己以前学的真是太水了。但是苦于自己没有这么多机器,电脑也是linux,开虚拟机又觉得卡,所以想到使用docker。或许大家会想docker不就是提供这种虚拟化服务的吗?和虚拟机不是一样吗?我刚开始也是这么想的,但是看了一下别人的博客,发现原来docker是一个轻量级虚拟化程序,其实

2016-09-19 16:13:06 366

原创 java ArrayList vector 线程安全

java ArraList和Vector有什么区别?或许我们都知道的一点是ArrayList是非线程安全的,而Vector是线程安全的。什么是线程安全呢?线程安全就是多个线程对同一个对象进行插入操作时,同一时间段内只有一个线程能够对其进行操作。我们进行一下测试:使用多个线程同时操作一个ArrayList:import java.util.ArrayList;import java.uti

2016-09-16 16:08:39 1324

转载 java atomic原理

Atomic 从JDK5开始, java.util.concurrent包里提供了很多面向并发编程的类. 使用这些类在多核CPU的机器上会有比较好的性能.主要原因是这些类里面大多使用(失败-重试方式的)乐观锁而不是synchronized方式的悲观锁.今天有时间跟踪了一下AtomicInteger的incrementAndGet的实现.本人对并发编程也不是特别了解, 在这里就是

2016-09-15 13:38:11 476

原创 Java线程池----mark

最近温习了Java线程池相关的知识,感觉太久没看,都忘了,特此记录。1.   Excutor:   java线程池的顶层接口,提供了execute(Runnable r)方法。2.   ExcutorService:  继承自execute方法的一个接口,是为Executor服务的,用于进行线程的提交(submit),执行(invokeAll,invokeAny)等操作。3.   Ab

2016-09-14 17:15:02 320

原创 Java volatile关键字

其实今天主要想说的是volatile的读写问题,首先来说一下volatile能解决什么问题,不能解决什么问题。1. volatile能够解决线程中数据读取不一致的问题,我们知道每一个线程都有自己的线程栈,自己在自己的线程栈中存放自己线程中所需要的变量,其实可以理解成计算机硬件中的寄存器,目的是为了减少自己对内存的访问次数,那么线程栈中什么时候进行更新呢?这在线程中称为可见性,下面我们举一个错误

2016-09-13 15:17:56 198

原创 java Thread join方法

Thread.join()是指的是让主线程等待子线程运行结束之后继续执行。我们先来看一看不适用join的情况。public class Test{ public static void main(String[] args0){ Thread1 thread1 = new Thread1(); thread1.start(); } static class Thread1

2016-09-11 15:07:26 252

原创 java 多线程相关问题

java多线程相关问题很多知识还是应该自己进行测试,看看结果,别人的看了印象不是太深刻。java多线程实现的方法:A, 集成Thread类: public class Thread1 extends Thread{}B, 实现Runnable接口: public class Thread1 implements Runnable{}两者之间的差别: A, java不

2016-09-10 23:17:45 258

转载 关于数据库锁以及mvcc

一、乐观锁介绍乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检,乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库如果提供类似于write_condition机制的其实都是提供的乐观锁。类似SVN悲观锁假定其他用户企图访问或者改变你正在访问、更改的对象的概

2016-09-08 11:27:43 1753

转载 mysql 锁分类概述

表级锁MySQL表级锁分为读锁和写锁。读锁用法:LOCK TABLE table_name [ AS alias_name ] READ释放锁使用UNLOCK tables.可以为表使用别名,如果一旦使用别名在使用的时候也必须采用别名。成功申请读锁的前提是当前没有线程对该表使用写锁,否则该语句会被阻塞。申请读锁成功后,其他线程也可以对该表进行读操作,但不允许有线程对其进行写操作,就

2016-09-07 16:59:06 707

原创 Mysql 的锁与索引的关系

mysql 锁与索引的关系  mysql的锁:(行锁,表锁,页锁) 与索引存在很大的关系,我们平时在写sql的时候其实很少注意这个问题(估计是个人水平比较低,所以很少注意吧),那么在有索引和没有索引的时候数据库锁的策略是什么呢?首先我们知道如果没有建立索引的话我们在进行数据选取或者定位的时候是通过全表扫描的形式来进行的,比如存在这样一张表user(id,name,phone,address

2016-09-07 16:14:00 10355 3

转载 mysql b-tree索引

B树索引的相关概念索引与表一样,也属于段(segment)的一种。里面存放了用户的数据,跟表一样需要占用磁盘空间。只不过,在索引里的数据存放形式与表里的数据存放形式非常的不一样。在理解索引时,可以想象一本书,其中书的内容就相当于表里的数据,而书前面的目录就相当于该表的索引。同时,通常情况下,索引所占用的磁盘空间要比表要小的多,其主要作用是为了加快对数据的搜索速度,也可以用来保证数据的唯一性

2016-09-07 13:38:12 261

原创 mysql 导入txt文档的问题

学习总结基本的MySQL数据库导入导出操作   在进行txt格式数据导入到mysql时,遇到了很严重的问题,首先创建了格式相同的数据库表,然后我们进行数据导入,发现遇到错误: ERROR 1148 (42000): The used command is not allowed with this MySQL version.   当时很费解,以为是这个版本不支持,但是后来想想发现,旧版本支持

2016-09-05 00:04:09 2033

转载 mysql修改事务隔离级别

用户可以用SET TRANSACTION语句改变单个会话或者所有新进连接的隔离级别。它的语法如下:SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}注意:默认的行为(不带session和glo

2016-09-04 19:05:24 1877

原创 mysql的事务的自动提交

mysql事务的自动提交    由于技术比较菜,在上一篇关于数据库储存引擎的学习中发现:为什么我们开启事务,最后在提交之前也发现数据已经进行了修改?其实是自己有点迷糊了。个人理解,数据库的事务是指的数据库的一次完整操作,我们在进行数据库操作的过程中,如果自己来定义事务,那么我们能够控制他的提交和回滚操作。而在这个事务中这些操作对本事务是可见的,对其他事务(进程)却是不可见的。具体情况如下:

2016-09-04 18:13:23 6444 1

原创 关于mysql引擎的探究

mysql引擎基础             很久以前就知道mysql有多种存储引擎,但是究竟什么存储引擎有什么特点,现在才来学习,正名自己的求知欲并不是很强啊。得改改。1. 首先,我们应该查看一下mysql到底有些什么样的存储引擎,然后才能开始讨论各种引擎的特点,查看mysql引擎的语句:   show engines;   执行完成之后我们可以发现mysql中到底存在多少种类的存储引

2016-09-04 17:21:00 434

转载 linux实施流量监测工具 mark

一、iftop是什么?iftop是类似于top的实时流量监控工具。官方网站:http://www.ex-parrot.com/~pdw/iftop/二、iftop有什么用?iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等,详细的将会在后面的使用参数中说明。三、安装iftop安装方法1、编译安装如果采用编译安装可以到ift

2016-09-01 00:23:45 595

转载 linux nload 流量监测工具

如果你想在命令行界面监控网络吞吐量,nload 应用程序是个不错的选择。它是一个实时监控网络流量和带宽使用的控制台应用程序,使用两个图表可视化地展示接收和发送的流量,并提供诸如数据交换总量、最小/最大网络带宽使用量等附加信息。安装在 CentOS/RHEL/Red Hat/Fedora Linux 上安装 nload首先在 CentOS 或者基于 RHEL 的操作系

2016-08-31 23:59:24 2344

转载 linux分屏----tmux

转载自:http://blog.csdn.net/hcx25909/article/details/7602935Ctrl+b激活控制台;此时以下按键生效系统操作?列出所有快捷键;按q返回d脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话D选择要

2016-08-28 14:04:25 488

原创 操作系统调度算法

一、先来先服务和短作业(进程)优先调度算法1.先来先服务调度算法先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入

2016-08-28 11:51:11 2218

转载 Linux --TC 介绍--MARK

转载自:http://www.cnblogs.com/endsock/archive/2011/12/09/2281519.html一、TC原理介绍Linux操作系统中的流量控制器TC(Traffic Control)用于Linux内核的流量控制,主要是通过在输出端口处建立一个队列来实现流量控制。Linux流量控制的基本原理如下图所示。  接收包从输

2016-08-23 16:50:29 842

原创 TCP 协议--详解--来源于两篇博客

TCP概述前一篇讲述了IP,它是一个不可靠的,无连接的,无序的,无流控的,只顾寻找最佳路由进行转发,提供最好的传输,既然IP不管这些,是因为这些都由TCP来完成,IP层只需要传送,不管到达,复杂度在于路由选择,TCP接管了有序,有连接的,可靠的服务,复杂度也就在于如何有序,如何控制流量,使得传输可靠,两个协议侧重面不同,但却又相辅相承,TCP保证正确的传输,IP保证最佳路径传输,IP不保证到达

2016-08-19 16:58:35 7022

转载 go testing

golang testing包测试用例和性能测试发布时间: 2016-01-10 浏览次数:2802分类: GO如何保证代码的质量和可靠性?Golang自带了testing包可用来实现测试用例和性能测试.如下为例,新建gotest项目目录,编写两个文件bubblesort.go和bubblesort_test.gobubblesort.gopackage

2016-08-17 18:59:42 883

转载 linux shell if参数---markx

linux中shell条件判断if中的-a到-z的意思[ -a FILE ] 如果 FILE 存在则为真。[ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。[ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。[ -d FILE ] 如果 FILE 存在且是一个目录则为真。[ -e FILE ] 如果 FILE 存

2016-08-17 14:00:25 256

转载 记载我学习go的过程(四)--函数-有点意思

Go 语言函数函数是基本的代码块,用于执行一个任务。Go 语言最少有个 main() 函数。你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。函数声明告诉了编译器函数的名称,返回类型,和参数。Go 语言标准库提供了多种可动用的内置的函数。例如,len() 函数可以接受不同类型参数并返回该类型的长度。如果我们传入的是字符串则返回字符串的长度,如果

2016-08-16 14:14:16 780

转载 记载我学习go的过程(四)

Go 语言常量常量是一个简单值的标识符,在程序运行时,不会被修改的量。常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。常量的定义格式:const identifier [type] = value你可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。显式类型定义: const b string = "a

2016-08-16 14:13:33 266

转载 记载我学习go的过程(三)

Go 语言变量变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。Go 语言变量名由字母、数字、下划线组成,其中首个字母不能为数字。声明变量的一般形式是使用 var 关键字:var identifier type变量声明第一种,指定变量类型,声明后若不赋值,使用默认值。var v_name v_typev_nam

2016-08-16 11:39:28 261

转载 记载我学习go的过程(二)

Go 语言基础语法上一章节我们已经了解了 Go 语言的基本组成结构,本章节我们将学习 Go 语言的基础语法。Go 标记Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。如以下 GO 语句由 6 个标记组成:fmt.Println("Hello, World!")6 个标记是(每行一个):1. fmt2. .3. Println

2016-08-16 11:29:49 422

转载 记载我学习go的过程(一)

Go 语言结构在我们开始学习 GO 编程语言的基础构建模块前,让我们先来了解 Go 语言最简单程序的结构。Go Hello World 实例Go 语言的基础组成有以下几个部分:包声明引入包函数变量语句 & 表达式注释接下来让我们来看下简单的代码,该代码输出了"Hello World!":package mainimport

2016-08-16 11:19:52 522

51智能车代码

51单片机智能车红外循迹小车代码,源码!前方7个红外,直接上代码就能跑!

2014-11-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除