<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JavaLab]]></title><description><![CDATA[https://github.com/ZFJxxx]]></description><link>https://blog.youkuaiyun.com/DoUUnderstand</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; DoUUnderstand]]></copyright><item><title><![CDATA[FastJson API]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79905737</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79905737</guid><author>DoUUnderstand</author><pubDate>Thu, 12 Apr 2018 00:16:06 +0800</pubDate><description><![CDATA[

Maven依赖
重要的三个类
API
JSON格式字符串与JSONObject之间的转换
JSON字符串(数组类型)与JSONArray之间的转换











Maven依赖



&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;com.alibaba&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;fastjson&amp;lt;/a...]]></description><category></category></item><item><title><![CDATA[zookeeper学习笔记（3） - Paxos算法]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79898026</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79898026</guid><author>DoUUnderstand</author><pubDate>Wed, 11 Apr 2018 15:56:56 +0800</pubDate><description><![CDATA[

Paxos究竟在解决什么问题？
Paxos如何在分布式系统中应用？
例子


Paxos核心思想 






Paxos是一种提高分布式容错性的一致性算法，google chubby系统的创建者Mike Burrows就说过，世界上只有一种分布式一致性协议，就是Paxos，其他不过是Paxos的变种而已。

首先要了解，Paxos中有三个角色


Proposer：提议发起者。Propose...]]></description><category></category></item><item><title><![CDATA[zookeeper学习笔记（2）一致性协议 - 2PC 3PC]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79886690</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79886690</guid><author>DoUUnderstand</author><pubDate>Tue, 10 Apr 2018 19:56:36 +0800</pubDate><description><![CDATA[

一致性协议主要思想
二阶段提交协议 2PC
协议说明
缺点


三阶段提交协议 3PC
协议说明
优缺点











一致性协议主要思想

当一个事务操作需要跨越很多分布式节点的时候，为了保持事务的ACID，需要引入一个“协调者（Coordinator）”的组件来统一调度所有分布式节点的逻辑，被调度的节点被称为“参与者（Participant）”

协调者负责调度参与者的行为，并决定...]]></description><category></category></item><item><title><![CDATA[Linux学习笔记（8） adduser和useradd的区别]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79885986</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79885986</guid><author>DoUUnderstand</author><pubDate>Tue, 10 Apr 2018 19:09:41 +0800</pubDate><description><![CDATA[useradd和adduser的区别 
useradd与adduser都是创建新的用户

在CentOs下useradd与adduser是没有区别的都是在创建用户，在home下自动创建目录，没有设置密码，需要使用passwd命令修改密码。

而在Ubuntu下useradd与adduser有所不同

1、useradd在使用该命令创建用户是不会在/home下自动创建与用户名同名的用户目录，而且不会...]]></description><category></category></item><item><title><![CDATA[zookeeper学习笔记（1）分布式架构 - ACID、CAP、BASE分布式理论]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79882592</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79882592</guid><author>DoUUnderstand</author><pubDate>Tue, 10 Apr 2018 15:57:55 +0800</pubDate><description><![CDATA[

集中事务处理 - ACID
分布式事务处理 - CAP
分布式事务处理 - BASE









集中事务处理 - ACID


  集中式系统：集中式系统指由一台或者多台主机组成中心节点，数据集中存储在中心节点中。 
  分布式系统：分布式系统是一个硬件或者软件组件分布在不同的网络计算机上，彼此之间仅仅通过消息传递进行通信协调。


ACID，指数据库事务正确执行的四个基本要素的缩写。...]]></description><category></category></item><item><title><![CDATA[Linux学习笔记（7）Spring boot项目部署到Linux]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79818447</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79818447</guid><author>DoUUnderstand</author><pubDate>Wed, 04 Apr 2018 15:47:47 +0800</pubDate><description><![CDATA[

1.在Linux上安装好所需要的环境（比如Java环境、Mysql）
2.将Spring boot工程下的Java项目打包成Jar包
3.将Jar包传输到Linux
4.持续执行









1.在Linux上安装好所需要的环境（比如Java环境、Mysql）

整个项目的部署，只需要用maven将项目打包，上传至linux服务器，运行java -jar xx.jar 则可。  
 无需...]]></description><category></category></item><item><title><![CDATA[Linux学习笔记（6） Linux中的文件权限]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79716866</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79716866</guid><author>DoUUnderstand</author><pubDate>Tue, 27 Mar 2018 17:48:12 +0800</pubDate><description><![CDATA[

User, Group 及 Others
Linux 文件属性
改变文件拥有者
改变文件群组
改变文件权限









User, Group 及 Others

[用户与群组]的功能可是相当健全而好用的一个安全防护, 由于 Linux 是个多人多任务的系统，因此可能常常会有多人同时使用这部主机来进行工作的情况发生， 为了考虑每个人的隐私权以及每个人喜好的工作环境。

在 Linux 里...]]></description><category></category></item><item><title><![CDATA[Linux学习笔记（5） find中的 - exec]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79714478</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79714478</guid><author>DoUUnderstand</author><pubDate>Tue, 27 Mar 2018 15:57:59 +0800</pubDate><description><![CDATA[

实例1.find 命令匹配到了当前目录下的所有普通文件，并在 -exec 选项中使用 ls -l 命令将它们列出。
实例2：在目录中查找更改时间在14日以前的文件并删除它们
实例3：查找文件并移动到指定目录
实例4.用exec选项执行 cp 命令
实例5.-exec 中使用 grep 命令







我们使用find来查找想要的文件，但是我们一般查找出来的额并不仅仅是看看而已，还会有进一步...]]></description><category></category></item><item><title><![CDATA[Linux学习笔记（4）Shell 脚本]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79710913</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79710913</guid><author>DoUUnderstand</author><pubDate>Tue, 27 Mar 2018 11:49:58 +0800</pubDate><description><![CDATA[

如何执行Shell脚本？
执行环境
shell 变量
if..then条件判断
for条件判断
while条件判断
Case .. esac条件判断








如何执行Shell脚本？

比如脚本未知在 /home/shell.sh



//-x显示执行流程
# sh -x /home/shell.sh





执行环境



#!/bin/bash

因为我们使用的是 bash ，...]]></description><category></category></item><item><title><![CDATA[Linux学习笔记（2） 重要操作指令]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79623370</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79623370</guid><author>DoUUnderstand</author><pubDate>Tue, 20 Mar 2018 11:39:44 +0800</pubDate><description><![CDATA[

ps 
ls
yum (CentOS)
apt-get (Debian ubuntu) 
grep
su
echo
wget
find
scp
rz









ps 

s命令用于显示当前进程 (process) 的状态。



ps [options] [--help]

-A 和 -e 列出所有的进程

ps -ef 是用标准的格式显示进程 




UID    //用户ID、但...]]></description><category></category></item><item><title><![CDATA[Linux学习笔记（1）]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79623132</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79623132</guid><author>DoUUnderstand</author><pubDate>Tue, 20 Mar 2018 11:28:23 +0800</pubDate><description><![CDATA[

常用的shell指令
常用快捷键
Linux根目录文件
/etc 重要子目录文件
Linux文件管理







常用的shell指令

date  ：显示时间 
cal   ：显示日历 
bc ：为计算器 （用完注意quit） 
shotdown ：关机 
cd ：变换目录  （Change Directroy） 
pwd ：显示当前目录  （Print Working Directory...]]></description><category></category></item><item><title><![CDATA[OpenStack学习 (6) -  Neutron]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79584266</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79584266</guid><author>DoUUnderstand</author><pubDate>Fri, 16 Mar 2018 17:09:51 +0800</pubDate><description><![CDATA[Linux Bridge

这是学习Neutron的基础，如何使硬件上的每台虚拟机都能连上外部网络呢？

我们使用的就是Linux Bridge

多个网络设备可以连接到同一个Linux Bridge，当某个设备收到数据包时，Linux Bridge 会将数据转发给其他设备。 
 
当有数据到达 eth0 时，br0 会将数据转发给 vnet0，这样 VM1 就能接收到来自外网的数据； 
反过来，...]]></description><category></category></item><item><title><![CDATA[OpenStack学习 (5) - Cinder]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79572500</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79572500</guid><author>DoUUnderstand</author><pubDate>Thu, 15 Mar 2018 19:17:33 +0800</pubDate><description><![CDATA[Cinder框架

Block Storage Service提供对 volume 从创建到删除整个生命周期的管理。  
OpenStack 提供 Block Storage Service 的是 Cinder，其具体功能是： 


  (1)提供 REST API 使用户能够查询和管理 volume、volume snapshot 以及 volume type 
  (2)提供scheduler...]]></description><category></category></item><item><title><![CDATA[OpenStack学习 (4) - Nova]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79569821</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79569821</guid><author>DoUUnderstand</author><pubDate>Thu, 15 Mar 2018 16:18:08 +0800</pubDate><description><![CDATA[Nova整体架构

Nova控制着虚拟机的生老病死，管理他们的计算资源分配。

我们来看Nova的一个执行流程案例。 


Step1：首先用户执行Nova Client提供的用于创建虚拟机的指令

Step2：nova-api service监听到来自于Nova Client的HTTP请求，并将这些请求转换为AMQP消息之后加入消息队列Queue

Step3：通过消息队列Queue调用nova...]]></description><category></category></item><item><title><![CDATA[OpenStack学习 (3) - OpenStack整体架构]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79564250</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79564250</guid><author>DoUUnderstand</author><pubDate>Thu, 15 Mar 2018 10:27:44 +0800</pubDate><description><![CDATA[OpenStack

首先我们要明白，OpenStack的作用。 
OpenStack 为虚拟机提供并管理三大类资源：计算、网络和存储。 
 
所以我们的学习重点就是： 
搞清楚 OpenStack 是如何对计算、网络和存储资源进行管理的。





OpenStack架构

OpenStack众多组件中，最为重要的部分如下。 


其中Compute Service Nova 是 OpenSta...]]></description><category></category></item><item><title><![CDATA[OpenStack学习 (2) - KVM 与 Qemu]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79559028</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79559028</guid><author>DoUUnderstand</author><pubDate>Wed, 14 Mar 2018 19:19:53 +0800</pubDate><description><![CDATA[Qemu

QEMU是一个主机上的VMM（virtual machine monitor）,通过动态二进制转换来模拟CPU，并提供一系列的硬件模型，使guest os认为自己和硬件直接打交道，其实是同QEMU模拟出来的硬件打交道，QEMU再将这些指令翻译给真正硬件进行操作。通过这种模式，Guest os可以和主机上的硬盘，网卡，CPU，CD-ROM，音频设备和USB设备进行交互。但由于所有指令都需...]]></description><category></category></item><item><title><![CDATA[OpenStack学习 (1)- 虚拟化]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79557929</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79557929</guid><author>DoUUnderstand</author><pubDate>Wed, 14 Mar 2018 17:38:13 +0800</pubDate><description><![CDATA[虚拟化

虚拟化是云计算的基础。简单的说，虚拟化使得在一台物理的服务器上可以跑多台虚拟机，虚拟机共享物理机的 CPU、内存、IO 硬件资源。





Hypervisor

Host 是如何将自己的硬件资源虚拟化，并提供给 Guest 使用的呢？ 
这个主要是通过一个叫做 Hypervisor 的程序实现的。 

根据 Hypervisor 的实现方式和所处的位置，虚拟化又分为两种： 
 
对于...]]></description><category></category></item><item><title><![CDATA[剑指Offer 链表相关算法]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79406546</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79406546</guid><author>DoUUnderstand</author><pubDate>Wed, 28 Feb 2018 22:37:40 +0800</pubDate><description><![CDATA[

剑指Offer 16  翻转链表
剑指Offer 17  合并两个排序的链表
剑指Offer 18 链表中倒数第k个结点






剑指Offer 16  翻转链表

输入一个链表，反转链表后，输出链表的所有元素。



public class solution{
    public ListNode ReverseList(ListNode head){
        if(head...]]></description><category></category></item><item><title><![CDATA[Cookie和Session]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79399843</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79399843</guid><author>DoUUnderstand</author><pubDate>Wed, 28 Feb 2018 14:09:04 +0800</pubDate><description><![CDATA[1.由于HTTP协议是无状态的协议，所以服务端需要记录用户的状态时，就需要用某种机制来识具体的用户，这个机制就是Session.典型的场景比如购物车，当你点击下单按钮时，由于HTTP协议无状态，所以并不知道是哪个用户操作的，所以服务端要为特定的用户创建了特定的Session，用用于标识这个用户，并且跟踪用户，这样才知道购物车里面有几本书。这个Session是保存在服务端的，有一个唯一标识。在服务端...]]></description><category></category></item><item><title><![CDATA[一致性哈希]]></title><link>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79390140</link><guid>https://blog.youkuaiyun.com/DoUUnderstand/article/details/79390140</guid><author>DoUUnderstand</author><pubDate>Tue, 27 Feb 2018 16:29:34 +0800</pubDate><description><![CDATA[首先我们可以看看为什么需要一致性哈希算法。

假设我们有3台Redis缓存服务器，编号为0，1，2.现在我们想将3万张图片均匀的缓存存到这3台服务器上。因为不想在缓存中找某张图片时去遍历3台服务器，所以我们原始的做法是对缓存项的键进行哈希，将哈希后的结果对服务器的数量进行取模操作。



hash(图片名称) % 3 

这样当我们访问任意一张图图片时，就能快速的找出该图片被缓存在哪个服务器上 
...]]></description><category></category></item></channel></rss>