奇妙的 Linux 世界

种一棵树最好的时间是十年前,其次是现在。

一个优秀架构师必知的 30 条设计原则

众所周知,架构师的角色,更偏向于策划、而非指挥,塑造、而非支配,其存在的意义,在于引导大家讨论、而非自己主宰一切。 但是,具体应该如何执行呢?本文作者整理了 30 个公认的架构原则,来帮助大家解决此问题。也许有的原则,你从未听说,但你看完就能快速学会。 相信你学会了,工作起来也会事半功倍,或许还可帮你避免很多无用的加班! 本文作者叫 Srinath,是一位计算机科学家、软件架构师、作家。他......

Nginx 反向代理使用教程

前段时间公司根据要求需要将聚石塔上服务器从杭州整体迁移到张家口,刚好趁这次机会将这些乱七八糟的服务器做一次梳理和整合。断断续续一个月迁移完成大概优化掉了 1/3 的机器,完成之后遇到了一些问题,比如:曾经零零散散部署在生产上一些可视化 UI:Apollo、Kibana、Grafana、Jenkins 等等服务,这些服务都采用了 80 或者其它公网端口进行对外暴露。为了安全,现在不再开放非 8......

别让自己的选择,限制了你的未来

这一两周与几个朋友聊天,有年轻的90后,也有大叔级的70后,这些人在我看来都是很有能力的人,但是一些喜好过于强烈,让我不经意地回顾了我工作20年来身边的人,有发展得好的,也有发展的不好的,有些人是很可惜的,因为限制他们的不是其它人,也不是环境,而是自己,所以,很想写下这篇文章。(注:这篇文章可能会是一篇说教的文章,所以,可能会让你看着犯困,所以,我会尽量地短一些,而且尽可能多讲故事,少道理,......

MySQL Explain 使用指南

MySQL的 explain 命令语句提供了如何执行 SQL 语句的信息,解析 SQL 语句的执行计划并展示,explain 支持 select、delete、insert、replace 和 update 等语句,也支持对分区表的解析。通常 explain 用来获取 select 语句的执行计划,通过 explain 展示的信息我们可以了解到表查询的顺序,表连接的方式等,并根据这些信息判断......

如何优雅的回退 Git 误操作

Git 版本管理时,往往需要撤销某些操作。 本文介绍几种最主要的情况,给出详细的解释。更多的命令可以参考《常用 Git 命令清单》一文。 一、撤销提交 一种常见的场景是,提交代码以后,你突然意识到这个提交有问题,应该撤销掉,这时执行下面的命令就可以了。 1$ git revert HEAD 上面命令的原理是,在当前提交后面,新增一次提交,抵消掉上一次提交导致的所有变化。它不会改变过去的历史,......

Linux 内核故障调试利器 dmesg 使用指南

Linux 内核是操作系统的核心,它控制对系统资源(例如: CPU、I/O设备、物理内存和文件系统)的访问。在引导过程中以及系统运行时,内核会将各种消息写入内核环形缓冲区。这些消息包括有关系统操作的各种信息。 内核环形缓冲区是物理内存的一部分,用于保存内核的日志消息。它具有固定的大小,这意味着一旦缓冲区已满,较旧的日志记录将被覆盖。 dmesg 命令行实用程序用于在 Linux 和其他类似 ......

推荐一款全平台目录结构分析神器 folder-explorer

对于一个比较复杂的项目来说,我们经常需要在项目文档中对其结构和重要的文件进行介绍。而要形像生动的介绍清楚项目中所有内容,无疑是用一张漂亮的目录结构图。 通常一个目录结构图的制作需要以下几个步骤: 扫描目录 编辑注释 隐藏希望忽略的文件 生成美观的结构图 今天我们就给大家介绍一款可以自动扫描目录、分析文件结构和生成统计信息的利器 Folder-Explorer。 Fold......

浅谈集群、分布式、微服务的异同

什么是集群 集群是是指将多台服务器集中在一起,每台服务器都实现相同的业务,做相同的事情。但是每台服务器并不是缺一不可,存在的作用主要是缓解并发压力和单点故障转移问题。可以利用一些廉价的符合工业标准的硬件构造高扩展、高性能、低成本、高可用的系统。 集群主要具有以下特性: 伸缩性(Scalability) 在一些大的系统中,预测最终用户的数量和行为是非常困难的,伸缩性是指系统适应不断增长的用......

使用 Sysdig 进行监控和调试 Linux 机器

Sysdig 简介 Sysdig 官网 上对自己的介绍是: Open Source Universal System Visibility With Native Contaier Support. 它的定位是系统监控、分析和排障的工具,其实在 Linux 平台上,已经有很多这方面的工具 strace、tcpdump、htop、iftop、lsof、netstat,它们都能用来分析 Li......

Linux 中 Pstree 命令使用指南

在 Linux 机器上工作时,有时你可能需要找出当前正在运行的进程。你可以使用许多命令来查找有关正在运行的进程的信息,其中 ps 和 top 是最常用的命令。 在本文中,我们将讨论 pstree 命令。它类似于 ps ,但没有列出正在运行的进程,而是将它们显示在一个目录树中。树状格式是以一种更方便的方式来显示进程层次结构,并使输出在视觉上更具吸引力。 如何使用 pstree 命令 pstre......