摘要:背景介绍 我们先来看一下为什么要做集群,如果我们要部署一个单节点Redis,很明显会遇到单点故障的问题。 首先能想到解决单点故障的方法,就是做主从,但是当有海量存储需求时,单一的主从结构就会出问题,说问题之前要先了解一下主从之间是如何复制的。 我们把Redis分为三个部分,分别是客户端、主节点以及从 阅读全文
posted @ 2019-08-03 14:34 张以诺 阅读 (1639) 评论 (0) 编辑
摘要:背景介绍 在微服务横行的时代,服务化思维逐渐成为了程序员的基本思维模式,但是,由于绝大部分项目只是一味地增加服务,并没有对其妥善管理,当接口出现问题时,很难从错综复杂的服务调用网络中找到问题根源,从而错失了止损的黄金时机。 而链路追踪的出现正是为了解决这种问题,它可以在复杂的服务调用中定位问题,还可 阅读全文
posted @ 2019-06-07 00:56 张以诺 阅读 (1723) 评论 (4) 编辑
摘要:背景介绍 复制,就是对数据的完整拷贝,说到为什么要复制,首先能想到的是怕数据意外丢失,使得用户蒙受损失。 当完成了数据复制之后,会发现它的优势不止这一点,假如一台机器宕机了,可以启用备份在另一台机器的数据。毕竟宕机的概率很小,闲暇时间还可以让备份机器分担主机器的流量压力。除此之外,当要升级数据库版本 阅读全文
posted @ 2019-05-30 09:47 张以诺 阅读 (729) 评论 (4) 编辑
摘要:什么是重构? “重构”一词想必你已经听腻了,就是整理代码呗,不不不,重构旨在不改变调用者行为的前提下,对内部逻辑进行调整优化,提高其理解性,降低其修改成本,它是一门艺术,是程序员至高无上的荣耀…… 何时重构?怎么重构? 经常听到周边的人抱怨没有时间重构,重构并不是单独抽出时间集中处理的,而是当你想要 阅读全文
posted @ 2019-05-13 13:24 张以诺 阅读 (840) 评论 (3) 编辑
摘要:本文主要介绍分析源码的方式,其中包含环境的搭建、分析工具的安装以及源码调试的基本操作。 一、工具清单 PHP7.0.12 GDB CLion 二、源码下载及安装 三、GDB的安装与调试 3.1 安装 本文介绍两款调试工具,分别是GDB和CLion,前者为命令行调试工具,后者为图形界面调试工具,后者依 阅读全文
posted @ 2018-08-28 13:06 张以诺 阅读 (2375) 评论 (2) 编辑
摘要:$request_time 官方解释:request processing time in seconds with a milliseconds resolution; time elapsed between the first bytes were read from the client a 阅读全文
posted @ 2019-11-28 13:22 张以诺 阅读 (101) 评论 (0) 编辑
摘要:下载openresty 安装openresty 查看当前nginx的编译配置 如下所示,"configure arguments"就是编译nginx时的配置 编译openresty,把刚才的配置加到"configure"命令后方,如果需要使用lua也可以加上" with luajit" gmake即 阅读全文
posted @ 2019-11-24 16:52 张以诺 阅读 (84) 评论 (0) 编辑
摘要:创建锁文件 变量值自定义;在main函数执行完成后需要移除锁文件并关闭文件读取。 锁定文件 排它锁,不允许其他人读和写。 意味着无法锁定文件时不能阻断操作,马上返回给进程。 返回文件描述符,文件描述符是一个索引值,指向当前进程打开的文件记录表。最后在执行完毕后对文件解锁。 阅读全文
posted @ 2019-08-27 15:18 张以诺 阅读 (375) 评论 (0) 编辑
摘要:背景介绍 我们先来看一下为什么要做集群,如果我们要部署一个单节点Redis,很明显会遇到单点故障的问题。 首先能想到解决单点故障的方法,就是做主从,但是当有海量存储需求时,单一的主从结构就会出问题,说问题之前要先了解一下主从之间是如何复制的。 我们把Redis分为三个部分,分别是客户端、主节点以及从 阅读全文
posted @ 2019-08-03 14:34 张以诺 阅读 (1639) 评论 (0) 编辑
摘要:1. Consul Server 创建consul server虚拟主机 出现如下内容即创建成功 创建工作目录 创建docker compose.yml 切换环境到consul 执行docker compose.yml 查看虚拟主机IP 通过IP在浏览器访问8500端口,即可看到Consul的UI界 阅读全文
posted @ 2019-07-03 19:17 张以诺 阅读 (67) 评论 (0) 编辑
摘要:背景介绍 上篇介绍了利用Nginx反向代理实现负载均衡,本文详细讲述Nginx下的几种负载均衡策略。 轮询 轮询,顾名思义,就是轮流请求,基于上篇文章的介绍,我们将负载均衡策略聚焦于 文件的 。 在浏览器中对 连续发出请求,根据nginx请求日志可以看出web02与web03访问的次数是相同的。 加 阅读全文
posted @ 2019-06-27 20:07 张以诺 阅读 (689) 评论 (0) 编辑
摘要:首先,在 目录创建 目录,开启第一篇章。 创建 目录,在目录下分别创建三个节点目录: 、`nginx02 nginx03 nginx01 nginx02 nginx03`。 展示效果如下所示。 将nginx镜像中的配置文件拷贝到各子目录中,以便做挂载,方法是创建一个临时容器,将配置文件拷贝至宿主机 阅读全文
posted @ 2019-06-26 13:14 张以诺 阅读 (662) 评论 (0) 编辑
摘要:背景介绍 项目越做越大,用户量和请数量可能随时发生井喷,如果等到系统崩溃时再补救,损失可就大了,所以得想个办法提前预防。 想要预防,就得知道系统的哪个环比较节薄弱,顶不住压力,还要对系统的承受能力有个全面的评估,心里有底,好提前预防,这种评估分析预防优化等一系列手段全被性能测试涵盖在内。 性能的指标 阅读全文
posted @ 2019-06-14 22:48 张以诺 阅读 (457) 评论 (0) 编辑
摘要:映射的定义 初识映射会很懵,因为在PHP中没有映射类型的定义。其实没那么复杂,任何复杂的类型在PHP中都可以用数组表示,映射也不例外。 映射其实就是有key有value的数组,在Go中的赋值也很类似,但需要提前声明该映射类型的键与值的类型,确保所有的键和值的赋值类型统一,否则会报错。 在PHP中还有 阅读全文
posted @ 2019-06-14 13:57 张以诺 阅读 (379) 评论 (0) 编辑
摘要:基本介绍 交叉编译是为了在不同平台编译出其他平台的程序,比如在Linux编译出Windows程序,在Windows能编译出Linux程序,32位系统下编译出64位程序,今天介绍的gox就是其中一款交叉编译工具。 配置环境 首先配置好Go语言的环境变量,并在 中设置,简单说明一下为什么要添加至该文件, 阅读全文
posted @ 2019-06-13 22:47 张以诺 阅读 (561) 评论 (0) 编辑