摘要: 背景介绍 我们先来看一下为什么要做集群,如果我们要部署一个单节点Redis,很明显会遇到单点故障的问题。 首先能想到解决单点故障的方法,就是做主从,但是当有海量存储需求时,单一的主从结构就会出问题,说问题之前要先了解一下主从之间是如何复制的。 我们把Redis分为三个部分,分别是客户端、主节点以及从 阅读全文
posted @ 2019-08-03 14:34 MARIOOW 阅读(13051) 评论(4) 推荐(9) 编辑
摘要: 背景介绍 在微服务横行的时代,服务化思维逐渐成为了程序员的基本思维模式,但是,由于绝大部分项目只是一味地增加服务,并没有对其妥善管理,当接口出现问题时,很难从错综复杂的服务调用网络中找到问题根源,从而错失了止损的黄金时机。 而链路追踪的出现正是为了解决这种问题,它可以在复杂的服务调用中定位问题,还可 阅读全文
posted @ 2019-06-07 00:56 MARIOOW 阅读(8170) 评论(5) 推荐(14) 编辑
摘要: 背景介绍 复制,就是对数据的完整拷贝,说到为什么要复制,首先能想到的是怕数据意外丢失,使得用户蒙受损失。 当完成了数据复制之后,会发现它的优势不止这一点,假如一台机器宕机了,可以启用备份在另一台机器的数据。毕竟宕机的概率很小,闲暇时间还可以让备份机器分担主机器的流量压力。除此之外,当要升级数据库版本 阅读全文
posted @ 2019-05-30 09:47 MARIOOW 阅读(1663) 评论(4) 推荐(5) 编辑
摘要: 什么是重构? “重构”一词想必你已经听腻了,就是整理代码呗,不不不,重构旨在不改变调用者行为的前提下,对内部逻辑进行调整优化,提高其理解性,降低其修改成本,它是一门艺术,是程序员至高无上的荣耀…… 何时重构?怎么重构? 经常听到周边的人抱怨没有时间重构,重构并不是单独抽出时间集中处理的,而是当你想要 阅读全文
posted @ 2019-05-13 13:24 MARIOOW 阅读(1857) 评论(3) 推荐(1) 编辑
摘要: 本文主要介绍分析源码的方式,其中包含环境的搭建、分析工具的安装以及源码调试的基本操作。 一、工具清单 PHP7.0.12 GDB CLion 二、源码下载及安装 三、GDB的安装与调试 3.1 安装 本文介绍两款调试工具,分别是GDB和CLion,前者为命令行调试工具,后者为图形界面调试工具,后者依 阅读全文
posted @ 2018-08-28 13:06 MARIOOW 阅读(5068) 评论(2) 推荐(2) 编辑
摘要: GitHub 链接:https://github.com/donnemartin/system-design-primer 什么是 System Design Primer? System Design Primer 是一个专注于系统设计的开源项目,由 Donne Martin 创建并维护。它旨在帮 阅读全文
posted @ 2024-11-01 21:05 MARIOOW 阅读(386) 评论(0) 推荐(5) 编辑
摘要: GitHub 仓库链接:https://github.com/bxcodec/faker 简介 在开发和测试过程中,我们经常需要各种各样的测试数据。如果手动去生成这些数据,不仅耗时,还容易出错。faker 是一个 Go 语言的假数据生成库,可以快速生成各种字段的随机数据。这个库可以帮我们轻松生成各种 阅读全文
posted @ 2024-11-01 14:44 MARIOOW 阅读(126) 评论(0) 推荐(0) 编辑
摘要: GitHub 仓库链接:https://github.com/mattn/anko 1. anko 是干嘛用的? anko 是一个可以让 Go 项目支持脚本语言的小工具。换句话说,就是我们可以给 Go 项目加点“脚本魔法”,在程序跑起来之后还能动态地改代码逻辑。比如,你在写一个应用,想让用户可以随时 阅读全文
posted @ 2024-11-01 11:48 MARIOOW 阅读(235) 评论(0) 推荐(1) 编辑
摘要: 关键术语介绍 为了方便开源库的快速上手,我们先来了解 excel 中的几个关键术语,如下图所示,①为sheet,也就是表格中的页签;②为row,代表 excel 中的一行;③为cell,代表 excel 中的一个单元格。 正常情况下,创建一个表格的基本流程是打开 wps 点击新建,这时会默认创建一个 阅读全文
posted @ 2020-10-11 20:47 MARIOOW 阅读(4303) 评论(1) 推荐(1) 编辑
摘要: 什么是 API 网关? 所谓网关,主要作用就是连接两个不同网络的设备,而今天所讲的 API 网关是指承接和分发客户端所有请求的网关层。 为什么需要网关层?最初是单体服务时,客户端发起的所有请求都可以直接请求到该服务,但随着产品用户越来越多,单体应用存在显而易见的单点问题,除此之外,当单体应用大小升至 阅读全文
posted @ 2020-05-16 22:09 MARIOOW 阅读(1497) 评论(4) 推荐(2) 编辑
摘要: 这有一个专注Gopher技术成长的开源项目 "「go home」" 背景 作为一名程序员,家里多多少少会有一些落了灰的电脑,如果把闲置的电脑变成服务器,不仅有良好的配置,还能用来做各种测试,那就再好不过了。但是局域网的设备怎么被外网访问呢?这就靠内网穿透来实现了。 内网穿透又叫 "NAT" 穿透,常 阅读全文
posted @ 2020-05-15 22:55 MARIOOW 阅读(10158) 评论(0) 推荐(0) 编辑
摘要: 要想在终端后台常驻进程,首先想到的是在命令后加 & 符号,来达到隐藏程序在后台的目的,尽管看起来进程已经在后台运行了,实际上终端会话关闭时进程还是会被 kill 掉,这种问题一般是采用搭配 nohup 命令来解决的,nohup 作用是忽略 SIGHUP 信号,而会话关闭时正好发送了该信号给会话内所有 阅读全文
posted @ 2020-04-26 21:28 MARIOOW 阅读(1480) 评论(1) 推荐(1) 编辑
摘要: 最近机缘巧合的购置了域名和服务器,不用实在是浪费,再加上一直没有属于自己的个人网站,所以打算用hexo在服务器上玩一下,这样也就不用再纠结用Github pages还是Gitee pages了。当然,今天的主题并不是博客搭建,而是如何利用Github的钩子,将博客代码部署到服务器上。 毕竟Githu 阅读全文
posted @ 2020-04-26 10:33 MARIOOW 阅读(1649) 评论(1) 推荐(1) 编辑
摘要: 😋我是平也,这有一个专注Gopher技术成长的开源项目 "「go home」" 背景介绍 想必事务大家都已经非常熟悉了,它是一组SQL组成的一个执行单元,要么全执行要么全不执行,这也是它的一个特性——原子性。而事务的应用场景也非常广泛,最经典的就是转账问题,A给B打钱,不能出现A钱扣了B还没收到的 阅读全文
posted @ 2020-04-20 16:16 MARIOOW 阅读(1440) 评论(0) 推荐(1) 编辑
摘要: 😋我是平也,这有一个专注Gopher技术成长的开源项目 "「go home」" 导读 相信很多人都听说过Go语言天然支持高并发,原因是内部有协程(goroutine)加持,可以在一个进程中启动成千上万个协程。那么,它凭什么做到如此高的并发呢?那就需要先了解什么是并发模型。 并发模型 著名的C++专 阅读全文
posted @ 2020-04-17 20:19 MARIOOW 阅读(1110) 评论(1) 推荐(3) 编辑