自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 Zookeeper数据一致性(ZAB协议)

分布式 主导CAP 理论,系统一致性,可用性,以及分区容错性。虽然 实际中 三者一般 不可尽善尽美,但 多多益善 最好。上篇 的 集群选举 多是 分区容错性 ,即 多节点服务 ,某服务 不可用 ,可 尽快恢复。 本篇 则主要 数据一致性 问题,且 在某些 场景中 数据的一致性 有可能 高于其他。分布式系统,对 多副本数据 一致性这块 ,有多种 基础方案 ,如 Lease机制 (为 ...

2019-08-16 23:24:20 261

原创 Paxos 算法 与 Zookeeper 集群选举

引言 分布式系统中,集群副本 是比较重要的存在形式。对于其协议 ,一般常见分为两种,中心化副本控制协议(类似主从),另一种 去中心化副本协议 ( 无绝对中心概念,一般选举产生)。本文Paxos 算法 ,其实是 一种比较经典的 去中心化 副本协议,而Zookeeper 集群选举流程 其实是一种 简化版Paxos。Paxos 算法 1.Paxos 基本角色...

2019-08-15 22:52:19 387

原创 反思记录(一)

今天,无意间进入自己CSDN博客,发现竟时隔三年之久。2016,当时还在读中,本着 共同学习 的原则 在此写下 第一篇博客,连到此刻 签名仍是 “坚持过程中的最有魅力”。莫名一种尴尬的感觉,中间这几年 竟没有一篇分享。 其实,之后 不管在校 还是 公司,也一直接触了很多其他东西,也可能忙得忘了 (感觉 全是借口啊)。若以结果为导向,确实 没有坚持......嗯 ,贵在坚持 ,以...

2019-08-09 22:54:40 256

转载 javap命令工具

那么,我们如何反编译指定的Java字节码文件呢?其实,在Sun公司提供的JDK中,就已经内置了Java字节码文件反编译工具javap.exe(位于JDK安装目录的bin文件夹下)。我们可以在dos窗口中使用javap来反汇编指定的Java字节码文件。在使用javap的相关dos命令之前,你必须确保已经将JDK安装目录\bin添加到环境变量path中。接着,我们就可以使用javap来反编译指定的Jav

2016-05-14 00:48:30 3681

原创 Mysql 排序实现

查询语句中有大量的order by操作,它却是一个非常耗时的一个操作。 同样group by 也需要进行排序。Mysql中有两类方式进行排序:第一种:使用range, ref,index读写方式,explain的输出range,ref,index是描述对索引列的读取方式,这种方式获取的输出都是按照索引列的顺序排列的,这种方式读取后,不需要进行排序操作(Mysql 6.0 版本中MyISAM和Inn

2016-05-07 14:24:39 1493

原创 加密之SHA,MD5

SHA,MD5两者又可称为安全散列算法,一种不可逆转的加密算法 严格意义上讲,两者都不属于一种加密算法,它们只是将数据换了另一种形式进行存储。所谓安全散列算法,是指将任意长度的输入,散列成固定长度的输出, —>压缩映射(等价),散列空间远小于输入空间,散列值可一一对应MD5 为128位,SHA为160位 所以,MD5比SHA快,但SHA比MD5强度高SHA:import java.securi

2016-04-16 17:07:15 599

原创 算法之约瑟夫环

约瑟夫环:设有N个人围成一个圈,约定从第几个人开始,数几个人会出圈,每个人的出圈顺序我以C代码为例://约瑟夫环#include<stdio.h>void Jorephus(int a[],int sum,int m,int n){ int x,j; while(sum>1){ m=(m+n-1)%sum; x=a[m]; for(

2016-04-12 19:10:10 501

转载 我是一个线程

很不错的一个学习方法第一回 初生牛犊我是一个线程,我一出生就被编了个号:0x3704,然后被领到一个昏暗的屋子里,在这里我发现了很多和我一模一样的同伴。我身边的同伴0x6900 待的时间比较长,他带着沧桑的口气对我说:“我们线程的宿命就是处理包裹。把包裹处理完以后还得马上回到这里,否则可能永远回不来了。”我一脸懵懂,“包裹,什么包裹?”“不要着急,马上你就会明白了,我们这里是不养闲人的。”果然,没多

2016-04-11 21:37:01 381

原创 设计模式之单例模式

单例模式:简单来说就是只能创建出一个对象(静态属性+私有构造)常见的单例模式创建方法(2种):饿汉模式:实例在类加载时就已经创建,线程是安全的 类加载时较慢,但运行时快public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){} pub

2016-04-10 16:47:53 309

原创 算法之全排列

全排列思想:每排一次都进行交换,每次只有后几个全排列,第一个永远是不需排的#include <stdio.h> //全排列 int n = 0; void swap(int *a, int *b) { int m; m = *a; *a = *b; *b = m; } void perm(int list[], int k

2016-04-10 16:40:30 368

原创 数据结构之二叉树

树,一种非线性结构 <1>有且只有一个节点无前驱—根节点 <2>有多个节点没有后继—叶子节点 <3>除根,叶子节点外的其余节点,向上只有一个前驱,向下有多个后继节点的度:一个节点的子女节点的个数 树的度:树中度值最大的节点的度 K叉树,即树的度值为K本文主要以二叉树为主: <1>一棵非空二叉树的叶子节点总比双分支节点多一个 即,总节点个数=双分支节点数+单分支节点数+叶

2016-04-10 16:28:24 455

原创 数据结构之链表

数组,存储空间大,且连续,而链表与之相反,它的存储区域是不连续的空间单元;链表中除了头节点没有前驱,尾节点没有后继之外,其余都会有前驱和后继(此文中暂不提及环链)链表的每个节点都是一个结构体单元,至少有两个域,一个为值域,一个为存储下一个节点地址的指针域其结构体可声明为:typedef struct node{ int data; struct node *next;}ElemSN;创建一条链

2016-04-10 12:45:26 419

转载 Linux服务器

Linux查看CPU和内存使用情况 在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 – 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。top命

2016-04-09 17:04:29 562

转载 jdk版本间区别

1.7版本新特性1.switch中可以使用字串了 String s = “test”; switch (s) { case “test” : System.out.println(“test”); case “test1” : System.out.println(“test1”); break ; default : System.out.p

2016-04-09 17:02:16 524

转载 网络基础

常见的状态码一些常见的状态码为:200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 详细分解:1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码。代码 说明 100 (继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。2

2016-04-09 17:00:13 510

原创 数据库的隔离级别

隔离级别 在数据库操作中,为了有效的保证并发读取数据的正确性而提出的 <1>更新丢失:两个事务同时更新一条数据,但第二个事务却中途退出(失效),导致对数据的两个修改都失效了,这是因为系统没有执行任何的锁操作,而并发事件未被隔离开 <2>脏读:两个并发的事务,事务B读取了事务A未提交的数据 <3>不可重复读:两个并发的事务,事务A读取了事务B的数据,事务B更新了数据,并进行了提交,当事务A再次

2016-04-09 16:49:15 421

原创 线程中的死锁

死锁,是指两个或以上线程争夺同一个资源,所以保持等待中。。。条件:互斥条件;请求和保持;不可剥夺;环路条件;分析死锁,找到等待资源的id ,到拥有的这个资源这我写了简单的例子(可以帮助大家理解一下):package testThread;public class deadLock implements Runnable{ public int fag=0; private stati

2016-04-06 20:51:36 469

原创 多线程

多线程 首先我们来了解以下什么是线程,线程和进程之间又有什么区别与联系进程是拥有资源的基本单位,而线程是拥有调度分配的基本单位,线程相当于程序执行的一条路径,而进程由多个线程组成,两者都可提高程序的并发度,提高程序的运行效率和响应时间,不同的线程可以共享数据,每个线程都拥有自己独立的栈空间,拥有独立的执行序列多线程,顾名思义就是由多个线程组成。 多线程,多个线程并发执行,以提高效率,cpu不会因

2016-04-06 20:48:35 301

原创 TCP中的多线程

java中的多线程见其他篇章,再这我就简述一些我对TCP中多线程的理解上篇已提到TCP是一种可靠连接,需要客户端和服务端共同作用传输; 但实际中我们见的大部分都是一对多,即一个服务端,有多个客户端,甚至有多对多,多个服务端对多个客户端对于TCP中的多线程,我今天就一对多情况的思路做以简单介绍,简而言之,就是当客户向服务端发送请求时,服务端用一个集合类来接收,并在线程同步中,根据需要进行传输数据,并

2016-04-06 20:32:18 763

原创 网络编程

对于网络编程方面,我理解也不是很深,希望大家可以互勉,一起进步,一起成长网络编程(本文以TCP/UDP代码为主)以网络通信协议为基础,所谓通信协议即为约定协议,传输代码,出错控制等一系列标准,国际标准分为7层,同层之间可以相互通信,上层可以调用下层,各层之间互不影响,但实际项目工作中一般分为4部分,应用层(表示,会话)—传输—网络层—物理层(最低)+数据链路层 端口,同一台机器上的不同应用程序(Q

2016-04-06 20:18:38 299

原创 常用查找算法

查找:按某个关键字的值在数据集合中找到符合条件的值 (顺序查找,二分查找,散列查找,索引查找)顺序查找 适用于顺序表,链表 在某个数据集合中从某一个数据元素往后依次查找平均查找长度:ASL=(1+n)/2; 时间复杂度:O(n) 缺点:不符合大数据集合我以C代码为例:int search(int a[],int n.int key){ int i; int tag=-1;

2016-04-06 19:38:51 533

原创 数据库索引

数据库索引:【聚集索引】Innodb的索引也为b+树,但它数据域存储的内容为实际的数据,其索引的key为表的主键,因此,Innodb表的数据文件本身就是主索引(本身为主键聚集)所以,要求表必须要有主键,(MySQL会自动生成主键,若没有的话)不建议使用长的键(辅助索引数据域存储的是相应主键的值而不是地址,当以辅助索引查找时,先找到值)【非聚集索引】 (引擎)MyIASM索引结构为b+树,其数据域存

2016-04-06 18:05:40 560

原创 数据库引擎

用了好久的Mysql数据库,都不知道引擎的具体知识,被面试官虐残了,希望对大家有帮助数据库引擎:1.Innodb ACID(原子特性)<1>提供了行级锁和外键约束,设计目标是处理大容量数据库系统,它本身其实就是基于MySQL后台的完整数据库,提供了对数据库ACID的支持,并实现了SQL标准的四种事务隔离级别<2>当SQL运行时,Innodb会在内存中建立缓冲池,用于缓冲数据和索引,但并不支持FUL

2016-04-06 17:44:52 438

原创 常用排序算法解析

大学里也学了不少,今天将常用的几种排序算法做一下总结,希望对同道中人有帮助,也让自己的知识巩固一下,嘿嘿…..排序的种类 1.插入类排序(直接插入排序,希尔排序) 2.选择类排序(直接选择排序,堆排序) 3.交换类排序(冒泡排序,快速排序) 4.归并类排序冒泡排序 以升序为例 排序思想:从后往前每相邻元素进行比较,每趟产生最小 共需n-1趟 时间复杂度:O(n^2) 稳定性(主要看

2016-04-06 17:33:30 411

原创 Ubuntu常用Linux命令

显示目录和文件的命令   Ls:用于查看所有文件夹的命令。   Dir:用于显示指定文件夹和目录的命令   Tree: 以树状图列出目录内容   Du:显示目录或文件大小 修改目录,文件权限和属主及数组命令   Chmod:用于改变指定目录或文件的权限命令。   Chown:用于改变文件拥有属性的命令。   Chgrp:用于改变文件群组的命令。   Chattr:用

2016-04-06 16:19:06 375

原创 设计模式(23种简介)

设计模式是我们java web开发常用的东西,今天我只是简单整理了一个模式大纲,便于我与大家一起有针对性的学习设计模式主要分三个类型:创建型、结构型和行为型。 其中创建型有: 一、Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点 二、Abstract Factory,抽象工厂:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。 三、Factory Method,工厂方法:定义一个用于创建对象的接口,让子类决定实例化哪

2016-04-04 22:20:43 473

空空如也

空空如也

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

TA关注的人

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