<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_36431213的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_36431213</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_36431213]]></copyright><item><title><![CDATA[Restful API 请注意 HTTP 动词描述操作的幂等性]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/86530335</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/86530335</guid><author>qq_36431213</author><pubDate>Wed, 01 Jan 2020 23:56:39 +0800</pubDate><description><![CDATA[幂等性是一个老生常谈的话题，但是往往容易被大家忽略

面试时当问到 POST 请求和 GET 请求有什么区别的时候，很多人往往可以巴拉巴拉说一大堆，但是往往容易忘记了在 Restful API 中 GET是幂等的而 POST 不是
而这被大家忽略的一点往往会造成一些很大的影响
比如我们的一个提交订单的API，如果我们不做幂等性检查，就可以导致数据库同时生成两份订单，而这在线上是一个十分致命的问题
...]]></description><category></category></item><item><title><![CDATA[centos8 安装 flink 并测试 wordcount]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/103707643</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/103707643</guid><author>qq_36431213</author><pubDate>Thu, 26 Dec 2019 00:46:28 +0800</pubDate><description><![CDATA[开发环境和所需软件

centos 8
java
flink

安装 flink
我们选择安装的是 flink 目前的最新版本 1.9 版本 , 安装前请保证 java 已经正常安装


检查 java 是否安装
[vagrant@3b5a73745ce45650 ~]$ java -version
openjdk version "1.8.0_232"
OpenJDK Runtime Envir...]]></description><category></category></item><item><title><![CDATA[centos8 安装 kafka 并使用 supervisor 守护 kafka 进程]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/103691806</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/103691806</guid><author>qq_36431213</author><pubDate>Wed, 25 Dec 2019 00:34:40 +0800</pubDate><description><![CDATA[首先我们需要的软件机环境如下

centos 8
java
kafka
supervisor

首先我们需要先下载 java ，因为 kafka 运行需要 jdk 环境，其次我们需要下载 kafka 的二进制包，最后安装supervisor 守护 kafka 的进程


安装的主要命令依次如下
cd ~
yum install java
wget http://mirrors.tuna.tsing...]]></description><category></category></item><item><title><![CDATA[go 封装 ActiveMq，并实现 topic 和 queue 的生产和消费]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/103545169</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/103545169</guid><author>qq_36431213</author><pubDate>Sun, 15 Dec 2019 02:25:56 +0800</pubDate><description><![CDATA[go 封装 ActiveMq，并实现 topic 和 queue 的生产和消费
需要了解的基础知识

总所周知 activemq 有两种消息传递类型分别为

queue  Point-to-Point，点对点通信模型，即一个生产者对应一个消费者
topic  publish-and- subscribe，发布订阅模型，一个生产者可根据订阅向多个消费者推送数据


go  连接 activemq 的...]]></description><category></category></item><item><title><![CDATA[centos7  yum 安装最新版本 docker]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/103174717</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/103174717</guid><author>qq_36431213</author><pubDate>Thu, 21 Nov 2019 00:15:50 +0800</pubDate><description><![CDATA[安装docker的过程


使用命令 uname -a 检查 linux 内核版本是否大于 3.8
[vagrant@centos7 ~]$ uname -a
Linux centos7 3.10.0-957.12.2.el7.x86_64 #1 SMP Tue May 14 21:24:32 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux



更新 yum 源
...]]></description><category></category></item><item><title><![CDATA[使用 Vagrant 打包并运行本地开发环境]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/99710519</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/99710519</guid><author>qq_36431213</author><pubDate>Sun, 18 Aug 2019 23:55:05 +0800</pubDate><description><![CDATA[使用工具

Virtualbox
免费开源的虚拟机软件，使用它可以快速生成虚拟机
Vagrant
基于Ruby的工具，用于创建和部署虚拟化开发环境
Git
使用Git for Windows 来作命令行工具






...]]></description><category></category></item><item><title><![CDATA[centos7 安装 kafka 2.3.0 并配置集群]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/99363190</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/99363190</guid><author>qq_36431213</author><pubDate>Wed, 14 Aug 2019 01:15:08 +0800</pubDate><description><![CDATA[安装 java 11   sudo yum -y install java-11-openjdk*
https://download.oracle.com/otn/java/jdk/8u221-b11/230deb18db3e4014bb8e3e8324f81b43/jdk-8u221-linux-arm64-vfp-hflt.tar.gz?AuthParam=1565633728_5599ff...]]></description><category></category></item><item><title><![CDATA[使用 Vagrant 和 Virtualbox 快速搭建服务器集群]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/99240462</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/99240462</guid><author>qq_36431213</author><pubDate>Sun, 11 Aug 2019 23:51:33 +0800</pubDate><description><![CDATA[使用工具

Virtualbox
免费开源的虚拟机软件，使用它可以快速生成虚拟机
Vagrant
基于Ruby的工具，用于创建和部署虚拟化开发环境
Git
使用Git for Windows 来作命令行工具
Centos
服务器集群基于centos，需要在 vagrant 官网下载centos 的 box


搭建步骤

创建 Vagrantfile

鼠标右键点击桌面，选择 git bash 进...]]></description><category></category></item><item><title><![CDATA[比 json  快 10 倍的的msgpack]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/95660572</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/95660572</guid><author>qq_36431213</author><pubDate>Fri, 12 Jul 2019 21:16:57 +0800</pubDate><description><![CDATA[json 和 msgpack 都是非常优秀的序列化格式，下面我们将简单的对比一下两者的性能

使用语言 python 2.7
序列化数据类型：大小为 30 m 左右的 dict
测试过程，先伪造 20w 个元素的 dict
然后将 dict 序列化存入文本，读取文本数据进行反序列化




msgpack


序列化 耗时 0.196000099182


反序列化 耗时  0.092999935...]]></description><category></category></item><item><title><![CDATA[浅谈CAP理论]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/86513236</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/86513236</guid><author>qq_36431213</author><pubDate>Wed, 16 Jan 2019 19:22:10 +0800</pubDate><description><![CDATA[CAP 则是分布式系统的三要素 ，分别是

一致性 Consistency
可用性 Availability
分区容错性 Partition tolerance




A
BC

一个简单的分布式系统架构如上图，serve端 一共由B，C组成，client端为 A
下面我们来简单谈一下什么是CAP？
一致性 Consistency

可以理解为如果我写了一个值就一定可以读到这个值，不管是从分...]]></description><category></category></item><item><title><![CDATA[Innodb 自适应哈希索引的优缺点]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/86512359</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/86512359</guid><author>qq_36431213</author><pubDate>Wed, 16 Jan 2019 18:10:20 +0800</pubDate><description><![CDATA[



名称
自适应哈希索引




适合使用场景
适合使用 = 和 IN 操作符的等值查询


不合适场景
不适合使用 like 和 % 的范围查询和高并发的joins


优点
提高了Innodb的内存使用率和一些情况下二级索引的查询效率


缺点
占用Innodb的内存缓存，使用了 lacth 锁保护内存中的hash结构


mysql 术语列表中对自适应哈希索引的解释


AHI 自适应哈...]]></description><category></category></item><item><title><![CDATA[标准SQL事务隔离级别与Mysql事务隔离级别的区别与实现]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/86497493</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/86497493</guid><author>qq_36431213</author><pubDate>Tue, 15 Jan 2019 18:52:12 +0800</pubDate><description><![CDATA[
标准SQL的事务隔离级别





事务隔离级别
脏读
不可重复读
幻读




读未提交（read-uncommitted）
是
是
是


不可重复读（read-committed）
否
是
是


可重复读（repeatable-read）
否
否
是


串行化（serializable）
否
否
否



Mysql 的事务隔离级别





事务隔离级别
脏读
不可重复读
幻读


...]]></description><category></category></item><item><title><![CDATA[Go 语言实现堆排序与快速排序]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/82853519</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/82853519</guid><author>qq_36431213</author><pubDate>Fri, 11 Jan 2019 18:57:00 +0800</pubDate><description><![CDATA[
go 语言实现堆排序

package main

import (
	&amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;fmt&amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;
)

func buildHeap(arr []int) {
	length := len(arr)

	for i := (length / 2) - 1; i &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;= 0; ]]></description><category></category></item><item><title><![CDATA[Mysql   实现主从强一致性和高可用性]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/85790448</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/85790448</guid><author>qq_36431213</author><pubDate>Fri, 04 Jan 2019 18:20:22 +0800</pubDate><description><![CDATA[在一些对数据有强一致性要求的应用中，数据库宕机导致数据丢失是我们一定要避免的情况。所以保证数据的一致性对我们而言非常重要。

如何做到主从的强一致性呢？


在单机数据库中为了保证事务更新操作不会丢失会使用  WAL  日志优先（Write-Ahead-Logging）技术

WAL 的实现其实非常简单，即事务提交时，保证将事务产生的日志先刷到磁盘上，若事务跟新失败，则通过日志可以回滚



同理...]]></description><category></category></item><item><title><![CDATA[浅谈 Mysql 事务 由 ACID 到 MVCC]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/85636073</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/85636073</guid><author>qq_36431213</author><pubDate>Wed, 02 Jan 2019 19:58:24 +0800</pubDate><description><![CDATA[在 Mysql 的并发控制中我们常常需要使用到 锁 和 MVCC，那么这两者的使用场景有什么区别呢，为什么有了锁还要引入 MVCC 呢？下面我将为大家娓娓道来这两者使用上的区别

Mysql 的锁由 共享锁（读锁） 和 排它锁（写锁） 组成
按粒度也可以分为表锁和行锁
加锁和解锁遵循 2PL 即 两阶段锁原则
2PL就是将加锁/解锁分为两个完全不相交的阶段。加锁阶段：只加锁，不放锁。解锁阶段：只放...]]></description><category></category></item><item><title><![CDATA[ACID 和 CAP  一致性的区别]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/85611721</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/85611721</guid><author>qq_36431213</author><pubDate>Wed, 02 Jan 2019 13:39:54 +0800</pubDate><description><![CDATA[

ACID 代表数据库的四个基本要素，分别是

原子性 Atomicity
一致性 Consistency
隔离性 Isolation
持久性 Durability




CAP 则是分布式系统的三要素 ，分别是

一致性 Consistency
可用性 Availability
区分容错性   Partition tolerance




数据库 ACID 的一致性，我们又称之为内部一致性...]]></description><category></category></item><item><title><![CDATA[二叉树非递归遍历]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/80271540</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/80271540</guid><author>qq_36431213</author><pubDate>Thu, 06 Dec 2018 16:45:42 +0800</pubDate><description><![CDATA[&amp;amp;amp;amp;lt;?php


Class BTNode                         // 节点类
{
    public $data;
    public $lChild;
    public $rChild;

    public function __construct($data = null)
    {
        $this-&amp;amp;amp;amp;gt;data = $data;
...]]></description><category></category></item><item><title><![CDATA[Go 的面试基础算法（一）]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/80686436</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/80686436</guid><author>qq_36431213</author><pubDate>Thu, 06 Dec 2018 16:45:20 +0800</pubDate><description><![CDATA[
查找数据库字段中重复的数据




 SELECT grade FROM user GROUP BY grade HAVING COUNT(*)&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;1;]]></description><category></category></item><item><title><![CDATA[leetcode 经典面试题之链表   （2. 两数相加）]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/84262032</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/84262032</guid><author>qq_36431213</author><pubDate>Thu, 06 Dec 2018 16:45:09 +0800</pubDate><description><![CDATA[
两数相加


给出两个 非空 的链表用来表示两个非负的整数。其中，它们各自的位数是按照 逆序 的方式存储的，并且它们的每个节点只能存储 单位 数字。
如果，我们将这两个数起来相加起来，则会返回出一个新的链表来表示它们的和。
您可以假设除了数字 0 之外，这两个数都不会以 0 开头。
示例：
输入：(2 -&amp;amp;amp;amp;gt; 4 -&amp;amp;amp;amp;gt; 3) + (5 -&amp;amp;amp;amp;gt; 6 -&amp;amp;amp;amp;gt; 4)
]]></description><category></category></item><item><title><![CDATA[leetcode 经典面试题之链表（19. 删除链表的倒数第N个节点）]]></title><link>https://blog.youkuaiyun.com/qq_36431213/article/details/84262127</link><guid>https://blog.youkuaiyun.com/qq_36431213/article/details/84262127</guid><author>qq_36431213</author><pubDate>Thu, 06 Dec 2018 16:44:43 +0800</pubDate><description><![CDATA[
删除链表的倒数第N个节点


给定一个链表，删除链表的倒数第 n 个节点，并且返回链表的头结点。
示例：
给定一个链表: 1-&amp;amp;amp;gt;2-&amp;amp;amp;gt;3-&amp;amp;amp;gt;4-&amp;amp;amp;gt;5, 和 n = 2.
当删除了倒数第二个节点后，链表变为 1-&amp;amp;amp;gt;2-&amp;amp;amp;gt;3-&amp;amp;amp;gt;5.
说明：
给定的 n 保证是有效的。

func removeNthFr]]></description><category></category></item></channel></rss>