摘要:背景介绍 我们先来看一下为什么要做集群,如果我们要部署一个单节点Redis,很明显会遇到单点故障的问题。 首先能想到解决单点故障的方法,就是做主从,但是当有海量存储需求时,单一的主从结构就会出问题,说问题之前要先了解一下主从之间是如何复制的。 我们把Redis分为三个部分,分别是客户端、主节点以及从 阅读全文
posted @ 2019-08-03 14:34 平也 阅读(4814) 评论(0) 推荐(1) 编辑
摘要:背景介绍 在微服务横行的时代,服务化思维逐渐成为了程序员的基本思维模式,但是,由于绝大部分项目只是一味地增加服务,并没有对其妥善管理,当接口出现问题时,很难从错综复杂的服务调用网络中找到问题根源,从而错失了止损的黄金时机。 而链路追踪的出现正是为了解决这种问题,它可以在复杂的服务调用中定位问题,还可 阅读全文
posted @ 2019-06-07 00:56 平也 阅读(3750) 评论(4) 推荐(7) 编辑
摘要:背景介绍 复制,就是对数据的完整拷贝,说到为什么要复制,首先能想到的是怕数据意外丢失,使得用户蒙受损失。 当完成了数据复制之后,会发现它的优势不止这一点,假如一台机器宕机了,可以启用备份在另一台机器的数据。毕竟宕机的概率很小,闲暇时间还可以让备份机器分担主机器的流量压力。除此之外,当要升级数据库版本 阅读全文
posted @ 2019-05-30 09:47 平也 阅读(949) 评论(4) 推荐(4) 编辑
摘要:什么是重构? “重构”一词想必你已经听腻了,就是整理代码呗,不不不,重构旨在不改变调用者行为的前提下,对内部逻辑进行调整优化,提高其理解性,降低其修改成本,它是一门艺术,是程序员至高无上的荣耀…… 何时重构?怎么重构? 经常听到周边的人抱怨没有时间重构,重构并不是单独抽出时间集中处理的,而是当你想要 阅读全文
posted @ 2019-05-13 13:24 平也 阅读(1066) 评论(3) 推荐(1) 编辑
摘要:本文主要介绍分析源码的方式,其中包含环境的搭建、分析工具的安装以及源码调试的基本操作。 一、工具清单 PHP7.0.12 GDB CLion 二、源码下载及安装 三、GDB的安装与调试 3.1 安装 本文介绍两款调试工具,分别是GDB和CLion,前者为命令行调试工具,后者为图形界面调试工具,后者依 阅读全文
posted @ 2018-08-28 13:06 平也 阅读(3299) 评论(2) 推荐(2) 编辑
摘要:什么是 API 网关? 所谓网关,主要作用就是连接两个不同网络的设备,而今天所讲的 API 网关是指承接和分发客户端所有请求的网关层。 为什么需要网关层?最初是单体服务时,客户端发起的所有请求都可以直接请求到该服务,但随着产品用户越来越多,单体应用存在显而易见的单点问题,除此之外,当单体应用大小升至 阅读全文
posted @ 2020-05-16 22:09 平也 阅读(654) 评论(2) 推荐(2) 编辑
摘要:这有一个专注Gopher技术成长的开源项目 "「go home」" 背景 作为一名程序员,家里多多少少会有一些落了灰的电脑,如果把闲置的电脑变成服务器,不仅有良好的配置,还能用来做各种测试,那就再好不过了。但是局域网的设备怎么被外网访问呢?这就靠内网穿透来实现了。 内网穿透又叫 "NAT" 穿透,常 阅读全文
posted @ 2020-05-15 22:55 平也 阅读(152) 评论(0) 推荐(0) 编辑
摘要:要想在终端后台常驻进程,首先想到的是在命令后加 & 符号,来达到隐藏程序在后台的目的,尽管看起来进程已经在后台运行了,实际上终端会话关闭时进程还是会被 kill 掉,这种问题一般是采用搭配 nohup 命令来解决的,nohup 作用是忽略 SIGHUP 信号,而会话关闭时正好发送了该信号给会话内所有 阅读全文
posted @ 2020-04-26 21:28 平也 阅读(106) 评论(0) 推荐(0) 编辑
摘要:最近机缘巧合的购置了域名和服务器,不用实在是浪费,再加上一直没有属于自己的个人网站,所以打算用hexo在服务器上玩一下,这样也就不用再纠结用Github pages还是Gitee pages了。当然,今天的主题并不是博客搭建,而是如何利用Github的钩子,将博客代码部署到服务器上。 毕竟Githu 阅读全文
posted @ 2020-04-26 10:33 平也 阅读(452) 评论(1) 推荐(1) 编辑
摘要:😋我是平也,这有一个专注Gopher技术成长的开源项目 "「go home」" 背景介绍 想必事务大家都已经非常熟悉了,它是一组SQL组成的一个执行单元,要么全执行要么全不执行,这也是它的一个特性——原子性。而事务的应用场景也非常广泛,最经典的就是转账问题,A给B打钱,不能出现A钱扣了B还没收到的 阅读全文
posted @ 2020-04-20 16:16 平也 阅读(484) 评论(0) 推荐(1) 编辑
摘要:😋我是平也,这有一个专注Gopher技术成长的开源项目 "「go home」" 导读 相信很多人都听说过Go语言天然支持高并发,原因是内部有协程(goroutine)加持,可以在一个进程中启动成千上万个协程。那么,它凭什么做到如此高的并发呢?那就需要先了解什么是并发模型。 并发模型 著名的C++专 阅读全文
posted @ 2020-04-17 20:19 平也 阅读(292) 评论(1) 推荐(2) 编辑
摘要:我是平也,这有一个专注Gopher技术与成长的开源项目 "「go home」" 导读 学习Go语言源码的第一步就是了解先了解它的目录结构,你对它的源码目录了解多少呢? 目录总览 AUTHORS:Golang官方作者清单 CONTRIBUTING.md:加入贡献者队列的指导文件 CONTRIBUTOR 阅读全文
posted @ 2020-04-16 20:24 平也 阅读(423) 评论(0) 推荐(0) 编辑
摘要:开源库 "「go home」" 聚焦Go语言技术栈与面试题,以协助Gopher登上更大的舞台,欢迎 ~ 背景介绍 大家都知道进程是操作系统资源分配的基本单位,有独立的内存空间,线程可以共享同一个进程的内存空间,所以线程相对轻量,上下文切换开销也小。虽然线程已经比较轻量了,但还是占近1M的内存,而今天 阅读全文
posted @ 2020-04-14 17:42 平也 阅读(235) 评论(1) 推荐(1) 编辑
摘要:导读 在第二节,我们学习了Gin框架的路由定义与参数接收,今天应一位同学的要求,来讲解一下参数的绑定与校验。 为什么校验参数? 本不必抛出这个问题的,但顾及到初出茅庐的同学,这里解释一下。 假设做一个注册接口,传过来的用户名是不是不能太骚气?比如一堆空格和符号之类的;密码是不是不能太长也不能太短?手 阅读全文
posted @ 2020-04-10 17:02 平也 阅读(552) 评论(0) 推荐(1) 编辑
摘要:什么是中间件 中间件,英译middleware,顾名思义,放在中间的物件,那么放在谁中间呢?本来,客户端可以直接请求到服务端接口。 现在,中间件横插一脚,它能在请求到达接口之前拦截请求,做一些特殊处理,比如日志记录,故障处理等。这就是今天要讲述的中间件,那么,它在Gin框架中是怎么使用的呢? 如何使 阅读全文
posted @ 2020-04-09 16:02 平也 阅读(474) 评论(2) 推荐(3) 编辑