自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

日有寸进

世上只有一种英雄主义,就是在认清生活真相之后依然热爱生活。

  • 博客(27)
  • 资源 (1)

原创 zookeeper 客户端源码解读(二)SendThread & EventThread

zookeeper 客户端源码解读(二)关于2个线程SendThreadstartConnectClientCnxnSocket.connectClientCnxnSocketNIO.registerAndConnect关于2个线程在 1.1.2.1.2 ClientCnxn.start 里创建了两个线程,这两个线程是干什么用的呢?SendThread改变状态为 connecting...

2019-10-31 15:47:23 317

原创 zookeeper 客户端源码解读(三)exists

public Stat exists(final String path, Watcher watcher) throws KeeperException, InterruptedException { final String clientPath = path; PathUtils.validatePath(clientPath);...

2019-10-31 15:39:11 44

原创 zookeeper 客户端源码解读(一)入口

zookeeper 客户端源码解读1入口,ZooKeeperMain.main1.1 ZooKeeperMain1.1.1 MyCommandOptions.parseOptions1.1.2 ZooKeeperMain.connectToZK1.1.2.1 ZooKeeper1.1.2.1.1ClientCnxn1.1.2.1.2 ClientCnxn.start1入口,ZooKeeperMa...

2019-10-29 15:05:23 57

原创 zookeeper 与分布式系统

为什么学习ZK应该重点掌握分布式环境的演进过程,从一个单节点开始,慢慢过渡到分布式,为什么单节点不行,传统一个tomcat打天下有什么有点,缺点又是什么,当一个tomcat搞不定的时候,分布式的架构图又是什么样的,传统的单节点架构自然有问题,到了分布式的架构中,问题肯定也有不少,这些问题就是我们学习ZK要解决的,但学习这些解决方案之前,还是需要有点理论基础。接下来就要了解下什么是zk,...

2019-10-29 10:40:19 64

原创 zookeeper 客户端源码之 MyCommandOptions

MyCommandOptions 包含了两个东西:Command 和 Options。它们分别被用在两处:进入客户端之后和进入客户端之前进入客户端前:“zkCli.sh -server 127.0.0.1:2181”这里,进入 main 的 args 是一个 String 数组: ["-server", “127.0.0.1:2181”]:这里就会被 parseOptions 方法转...

2019-10-28 20:12:24 72

原创 为什么用 System.nanoTime() / 1000000 而不是 System.currentTimeMillis()?

问题来源以下是 zookeeper3.4.12 源码里的一小部分:注释里有一句话是在读不懂:Time.currentElapsedTime will change but nanoTime won't.个人感觉应该是写错了(根据返回值,明显要变两个一起变),这里应该是说的 currentTimeMillis() 和 nanoTime() 的区别。于是去 jdk 1.8 官方...

2019-10-26 22:13:50 248

原创 zookeeper 基础

目录结构

2019-10-25 20:45:41 47

原创 Https 与对称加密和非对称加密

详解 https 以及 Nginx 配置为什么要有 https加密进化史对称加密非对称加密证书颁发机构颁发证书总结为什么要有 https没有 https,用户传输的数据,如账号密码,会被不法分子截获。加密进化史对称加密客户端请求一次服务端后,服务端给客户端一个密钥。然后他们传输的数据会用密钥加密。但第一次告诉客户端密钥的时候也可能被不法分子截获。非对称加密服务端有自己的公钥和私钥...

2019-10-24 10:10:13 122

原创 Linux(CentOS7) 安装 zookeeper 集群并配置

下载地址https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/解压后进入 conf 文件夹cp zoo_sample.cfg zoo.cfgvim zoo.cfg创建 dataDir 文件夹:mkdir -p /soft/data/tmp/zookeeper进入文件夹:cd /soft/data/tmp/zookeeper...

2019-10-23 21:28:52 63

原创 keepalived 解决入口机器(Nginx)挂掉的问题

keepalived 解决最前端 Nginx 挂掉的问题问题来源LVS 解决思路keepalived 配置 LVS 过程主机配置从机配置检验 keepalived 的 LVS 效果keepalived 监控 Nginx主机配置从机配置充分利用从机问题来源我们有很多 Tomcat服务器交由 Nginx 管理,可 Nginx 所在的这台机器挂了怎么办?你可能会想到再来 2 台 Nginx 机器...

2019-10-22 22:52:15 796

原创 Nginx 资源压缩

Nginx 资源压缩问题来源解决思路Nginx 配置方法另外问题来源第一次打开页面,静态资源在浏览器上也没有缓存,响应有点慢,用户体验可能不太好,怎么办?解决思路浏览器在发送请求时,会附带自己支持的压缩方式:Nginx 配置方法location ~ /(.*)\.(html|js|css|png)$ { gzip on; # 启用gzip压缩,默认是off,不启用 # ...

2019-10-22 10:27:18 95

原创 Nginx 配置防盗链

Nginx 配置防盗链问题来源解决思路问题来源我的服务器里可能有很多好图片,那么别人可能会在自己的 html 里用 img 引用我的图片,这样就会给我的服务器带来压力。解决思路...

2019-10-22 09:43:58 148

原创 Nginx 解决跨域问题

Nginx 解决跨域问题问题由来Jsonp 的解决之道CORS 的解决之道nginx 配置跨域操作(CORS)简单请求复杂请求CORS 对比反向代理问题由来浏览器拒绝执行其它域名下的 ajax 运作:我想自己做一个搜索网站,但我不会搜索技术,怎么办呢?如果能发起 ajax 请求到百度就好了呢,可以这样吗?肯定不行,如果浏览器在自己的服务器域名对应的 html 页面内,发起 ajax 请求偷...

2019-10-20 23:30:32 738

原创 Openresty 的安装

如果有依赖没下载,可以参考 Linux(CentOS7) 下 Nginx1.15.8 安装步骤 前面的依赖下载。下载解压源码:wget https://openresty.org/download/openresty-1.15.8.1.tar.gz tar -zxvf openresty-1.15.8.1.tar.gz 选择需要的插件启用, --with-Components 激活组件,...

2019-10-18 22:53:11 28

原创 Nginx 负载均衡 —— upstream 配置

Nginx 负载均衡 —— upstream 配置语法格式轮询(默认)weightip_hash代理时的负载使用语法格式upstream 负载名 { [ip_hash;] server ip:port [weight=数字] [down]; server ip:port [weight=数字];} #[]内容为可选项轮询(默认)upstream order { se...

2019-10-18 22:06:33 215

原创 《Linux高性能服务器编程》阅读笔记 之(三)TCP 协议详解

目录TCP 服务的特点TCP 头部结构TCP 固定头部结构TCP 头部选项TCP 连接的建立和关闭三次握手与四次挥手半关闭状态连接超时TCP 状态转移TCP 状态转移总图服务器的典型状态转移过程客户端的典型状态转移过程TIME_WAIT 状态TCP 交互数据流TCP 成块数据流TCP 超时重传拥塞控制拥塞控制概述慢启...

2019-10-18 15:58:54 82

原创 《Linux高性能服务器编程》阅读笔记 之(二)IP 协议详解

目录IP服务的特点IPv4 头部结构介绍使用 tcpdump 观察 IPv4 头部结构IP 分片介绍使用 tcpdump 观察 IP 分片IP路由IP 模块工作流程路由机制IP转发重定向ICPM 重定向报文IPv6 头部结构IPv6 固定头部结构IPv6 扩展头部IP服务的特点IP协议是TCP/IP协议族的动力,它为上层...

2019-10-14 16:06:21 65

原创 《Linux高性能服务器编程》阅读笔记 之(一)TCP/IP 协议族

目录TCP/IP 协议族体系架构以及主要协议数据链路层网络层传输层应用层封装分用ARP 协议工作原理以太网ARP请求/应答报文详解ARP 高速缓存的查看和修改DNS 工作原理DNS 查询和应答报文详解Linux 下访问 DNS 服务使用 tcpdump 观察 DNS 通信过程socket 和 TCP/IP 协议族的关系TCP/I...

2019-10-11 09:41:43 165

原创 归并排序

归并排序思路代码复杂度分析时间复杂度空间复杂度稳定性分析优势适用场景思路将数组对半分到长度为 1 为止,再逆向合并,合并的过程中进行排序。将轮数减少到了 logn。代码public class MergeSort{ public static void mergeSort(int[] arr){ mergeSort(arr, 0, arr.length - 1);...

2019-10-08 11:05:01 95

原创 桶排序

桶排序思路代码复杂度分析时间复杂度空间复杂度稳定性分析优势适用场景思路非整形的计数排序,将数放到桶内,先将桶内排序,再整体排序。k 个桶,最后一个桶用来放最大值,只有 k - 1 个跨度,这 k - 1 个跨度对应 k - 1 个桶。所以跨度为 (max - min)/(k - 1)数对应的桶的下标为 (int)(arr[i] - min)/跨度1.遍历原始数组 arr 找到最大值和最...

2019-10-07 11:09:02 73

原创 计数排序

计数排序思路代码复杂度分析时间复杂度空间复杂度稳定性分析优势适用场景思路1.遍历原始数组 arr 找到最大值和最小值,确定计数数组 countArr 的范围2.遍历 arr 并计数于 countArr3.对 countArr 做调整,每个数等于前面的数之和4.反向遍历 arr,对应 countArr 中的数减 1,就是 sortedArr 中的位置代码public class Cou...

2019-10-07 09:37:11 42

原创 堆排序

堆排序思路代码复杂度分析时间复杂度空间复杂度稳定性分析优势适用场景思路将数组看成二叉堆,如果是从小到大排序,先下沉为最大堆。再将堆顶的数(最大的数)逐轮与最后一个数交换并不将它纳入堆中,然后下沉。这样一来,每轮都能在数组最后得到这轮中最大的数。代码public class HeapSort{ public static void heapSort(int[] arr) { ...

2019-10-06 22:59:00 42

原创 快速排序

快速排序思路代码填坑法指针交换法复杂度分析时间复杂度空间复杂读稳定性分析思路利用分治的思想,每次选择一个 pivot,将小于 pivot 的数放在左边,大于 pivot 的数放在右边。左右两边再分别选择一个 pivot。代码填坑法public class QuickSort{ public static void quickSort(int[] arr) { qu...

2019-10-06 20:45:40 65

原创 希尔排序

希尔排序思路代码复杂度分析时间复杂度空间复杂读稳定性分析思路插入排序适合大部分数有序。希尔排序为多轮等跨度插入排序。第一轮等跨度插入排序的跨度为 n/2,有 n/2 次插入排序。后面每轮跨度缩小到原来的一半。代码public class ShellSort{ public static void shellSort(int[] arr) { int d = arr....

2019-10-06 19:12:38 55

原创 插入排序

插入排序思路代码复杂度分析时间复杂度空间复杂读稳定性分析思路第 i 轮,有序范围为 0 ~ i - 1,选择索引为 i 的数插入到前面合适的位置,使有序范围为 0 ~ i。需要 i - 1轮。每一轮记录当前 i 的值,将前面比 i 的值大的,往后复制一位。发现比 i 的值小或等于的,将后面一个数和 i 的值交换。代码public class InsertSort{ public ...

2019-10-06 18:12:00 29

原创 选择排序

选择排序思路代码复杂度分析时间复杂度空间复杂读稳定性分析思路第 i 轮从第 i 个数后面选择一个最小的数与第 i 个数交换。需要 n - 1轮,第 i 轮比较 n - i -1 次。代码public class SelectionSort{ public static void selectionSort(int[] arr){ for(int i = 0; i &...

2019-10-06 17:39:04 38

原创 冒泡排序及两步优化

思路数组长度为 n,每一轮将一个最大的数放到最右边,最后剩一个数不用排,n-1 轮就能排好。第 i 轮需要排 n - i -1 次。代码public class BubbleSort{ public static void bubbleSort(int[] arr) { for (int i = 0; i < arr.length; i++) { ...

2019-10-06 17:13:54 91

mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz

Linux 使用的版本是centos 7,为方便起见,先把防火墙关闭,配置好网络,在安装部分,会分成两部分讲,首先讲单实例安装,也就是一台服务器上就装一个mysql,接下来就多实例安装,在一个服务器上安装2个甚至多个mysql.

2019-09-17

空空如也

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