分布式架构设计衍进与学习 - 基于Istio+K8s实现微服务可见性 Jul 31 2019 分布式架构设计衍进与学习 - 基于Istio+K8s实现微服务可见性,目前看到的最为全面的基于云应用,提供可观测性的现代分布式解决方案,这就是我一直在追寻的,感谢GARY STAFFORD!!My lucky! ...
操作系统 - 虚拟内存管理基础篇(一) Nov 28 2019 操作系统的几大块内包括CPU、内存、进程、IO、文件系统、进程并发的同步互斥、进程间通信、资源锁等相关内容; 操作系统系列内容主要结合《学堂在线》- 清华陈瑜老师授课的《操作系统原理》,结合《极客时间》倪凤飞老师的《性能优化专栏》做综合学习和整理! 相关PPT参阅:`https://tkstorm.com/os/` ...
Hugo+Ngrok+ECS,实同步内外网网络环境 Nov 13 2019 倘若你在本地Mac或者Win环境开发过程中,恰好有一个DEMO或者撰写了一个Markdwon文档,想让另外的同事们看到你的内容,你不想一个个的叫他们到你电脑面前来,你会怎么办? ...
最佳实践 - 在Golang编程中如何正确命名 Oct 31 2019 Golang很精简、高效,但并不容易写好优雅的Go代码,高质量的代码必要条件是代码的可读性,可读性的一个前提就是良好的命名!! ...
OAuth 2.0 - 开放授权2.0标准 May 26 2019 Oauth(Open Auth)是一个开放的网络授权协议,旨在提供<指定权限的访问>的能力,我们常说的“第三方登陆”、“SSO单点登录”,其内部原理大都涉及OAuth。 ...
Charles Proxy - MAC下的HTTP(S)分析工具配置和使用 May 12 2019 Charles Proxy是一款HTTP(S)请求代理软件,可以用于分析APP、WEB应用的接口请求,支持HTTPS代理,功能类似于Window下的Fiddler ...
HTTP/2 协议的概要介绍 Dec 18 2018 简要介绍了不同版本HTTP协议关键差异,梳理了HTTP/2协议的相关改进点,简要复述了HTTP/2协议的关键特性 ...
Bash Tips(持续更新) - 开发常用Bash命令 May 06 2017 Bash Tips - 日常开发中常用到的一些命令,包含常规的文件查找、字符替换、管道操作等,还包括网络调试、分析等命令的使用 ...
Mysql45讲(二)实践相关 Nov 18 2019 Mysql实践内容涵盖索引、主从、数据一致性、SQl语法以及一些相关技巧的内容! ...
Mysql45讲(一)基础篇关键点整理 Nov 16 2019 mysql45 Base: 快速对mysql的逻辑结构、日志、事务和事务隔离级别、锁类型、索引和索引结构等进行简要概述,对mysql的一些基本知识点进行了回顾和学习! ...
StatusOk+InfluxDb+Grafana(一)StatusOk - 轻量级的信息监控工具 May 11 2019 Statusok 是一款基于Go语言开发的轻量级的信息监控工具,基于c/s模式,定期由客户端发送http请求,支持多类信息通知客户端的api监控,配合InfluxDb+Grafana,可以达到快速部署一个简单的HTTP站点监控应用的目的! ...
StatusOk+InfluxDb+Grafana(二)InfluxDB - 时序数据库的简要介绍 Apr 11 2019 InfluxDB是一个由InfluxData开发的开源时序型数据库,具有跨OSS,云和企业产品的通用API的可编程性和高性能,可为您提供高粒度,高规模和高可用性。InfluxDB由Go写成,着力于高性能地查询与存储时序型数据,被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。 ...
StatusOk+InfluxDb+Grafana(三)Grafana - 开源的分析和监控的开发平台简要介绍 May 13 2019 无论您的数据在哪里,或者它所处的数据库是什么类型,您都可以将它与Grafana结合在一起。
Go net/http内部处理流程 Oct 23 2019 针对Go中标准库net/http内部处理流程
基于Docker Alpine镜像+Go源码构建Golang Oct 30 2019 Golang的通常安装方式是基于官网下载一个指定操作系统(Linux/Mac/Windows)版本的编译安装好的包,亦或者是基于`SourceCode`源码安装(Git或者下载指定版本的源码包),文章内容主要基于Docker环境,基于源码安装Go ...
PHP常驻进程内存泄露跟踪分析 Oct 18 2019 记一次PHP常驻进程内存泄露跟踪分析 ...
Hey - 基于Golang开发的一款类似Ab的压测工具 Aug 04 2019 Hey是一款类似于ab的工具,基于golang开发,代码较为精简,对代码简要分析,方便学习和复用 ...
编程重要的技能 - 学会何时拒绝编码 May 20 2019 保持编码但知道何时拒绝编码
Docker(四)Docker Container Network(容器互联、docker-compose.yml连接外部网络配置) Aug 05 2019 我们可以通过单个`docker network connect`直接简单的将两个容器连接在一起,让容器互通,但这种方式在容器过多情况下不方便;为此,在docker-compose.yml中我们可以通过指定外部已存在网络来告知服务连接。 由于docker的网络命名方式(默认情况下与目录前缀相关),我们可以通过指定命名网络依旧命名容器来方便调试。 通过这种应用容器编排和网络互连,可以做到统一网关和域名的入口配置(比如在`common-proxy`上面的Nginx做统一的网关操作),而不用重复的在多个应用中不断的导出映射不同端口或申总通过创建VM以IP区分方式来解决类似共用80、443端口复用问题。 ...
Docker(二)Docker Composer使用(应用服务组装、部署构建、网络连通设置等) Aug 02 2019 Docker Compose是一个用于定义和运行多容器Docker应用程序的工具,在隔离环境中运行应用程序并与之交互,这个就是Compose的主要目标。文章对docker compose以及docker-compose.yml配置进行相关概述! ...
Docker(三)Docker Machine简要说明(创建DockerVM主机、VM存储说明等) Aug 02 2019 Docker Machine是一个工具,可让在虚拟主机上(比如VirtualBox上)安装Docker Engine,并使用docker-machine命令管理主机。Docker For Mac默认情况下,Mac主机无法与容器直接通讯,需要通过端口映射方式将容器内运行的服务暴露给Mac运行(需要通过一个公用代理容器,且这个容器与其他服务网络互连才可以解决)。通过DockerMachine这点可以通过开多个VM通过不同的虚拟IP加相同的端口(比如80或443)就可以一部分解决。 ...
Docker(一) Brief Summary (Dockerfile、多阶段构建、镜像代理) Feb 27 2019 Docker是一个DevOps方面的基础工具和平台,通过轻量级的容器将应用程序和基础架构分离,以便应用快速部署、扩容、和交付软件。文章简要介绍了Dockerfile文件编写、多阶段构建、镜像代理配置等问题 ...
Websock简要介绍+Nginx WS代理设置 Oct 24 2019 Websocket(WS)和HTTP协议都是在应用层,都需要基于TCP传输协议支持;与HTTP的请求/响应模式不同,WS是一种应用层的网络传输协议,可以在TCP连接上进行全双工通信,位于OSI的应用层,协议版本要求13以上,且协议的开销比HTTP要小,传输利用率更优。 Websocket是从Ajax、Comet(长轮询)逐步衍进的技术,解决C/S之间的数据交互、数据互推(全双工)问题,浏览器支持方面目前基本都已经支持,而且在物联网方面也有应用; Websocket涵盖了传输+协议两个部分,传输指的是WS可以在应用层数据封装(组装成协议MQTT、AMPQ、SOAP等)传输数据,实际上还是基于TCP上,因此是握手过程是是在TCP三次握手后,再基于`Connection: Upgrade`、`Upgrade: websocket`升级到websocket协议;握手过程,服务端基于客户端Key进行Sec-WebSocket-Accept的生成. ...
httpstat - 基于Golang写的一款Http检测工具 Jul 31 2019 发现一个基于Golang写的http检测工具(httpstats),可以比较直观的看到一个完整的http的处理周期和耗时(It's like curl -v, with colours) ...
Viper - Go应用程序的完整配置解决方案 Jul 08 2019 Viper是Go应用程序的完整配置解决方案,包括12-Factor应用程序。它旨在在应用程序中工作,并可以处理所有类型的配置需求和格式。 ...
Logrus - 基于Golang的结构化日志记录器 Jul 04 2019 Logrus是Go(golang)的结构化记录器,与标准库记录器log API完全兼容,简要介绍了其功能和特性 ...
TCP Half-Close以及KeepAlive分析 Jun 27 2019 Tcp Half Close:基于Go的net包,对TCP的半关闭状态以及Keepalive的进一步透析 ...
Wine、Nono - MAC下跑Window应用方法 May 24 2019 除虚拟机外,想在MAC下跑Window的Fiddler、PowerDesigner等优秀的非跨平台的应用方法 | Wine (“Wine Is Not an Emulator” 的首字母缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Linux,macOS 及 BSD 等)上运行 Windows 应用的兼容层。Wine 不是像虚拟机或者模拟器一样模仿内部的 Windows 逻辑,而是將 Windows API 调用翻译成为动态的 POSIX 调用,免除了性能和其他一些行为的内存占用,让你能够干净地集合 Windows 应用到你的桌面 ...
Image_crawler - 基于Go编写的图片命令行下载工具 May 06 2019 之前在一些站点看到一些图片,想下载下来,需要一张一张的另存为,比较繁琐,故基于Go简单写了个并发图片爬虫下载 ...
高效沟通:好好说话的艺术 May 06 2019 不管对方是员工、客户、老板,甚至是家人朋友,好好说法、静心聆听、换位思考,尊重对方情绪和想法,是有效沟通的基础,心中常想着共赢、共情,日常的沟通将会顺畅很多 ...
HTTPS(四)相关术语小结 Jul 27 2018 HTTPS(四)术语小结 ...
HTTPS(三)基于Acme.sh向Let's Encrypt 进行证书申请 Jun 30 2018 如何快速的通过Acme.sh向Let's Encrypt进行证书申请以及定期自动签发 ...
HTTPS(二)证书CA机构相关内容 Jun 21 2018 每天都在浏览基于https的站点,证书到底是什么, 什么是CA(Certificate Authority 证书认证颁发机构),SAN证书又是什么,Let's Encrypt是如何进行证书签发的 ...
HTTPS(一)Openssl的升级和基本使用 Jun 11 2018 OpenSSL常用命令允许您生成CSR,证书,私钥并执行其他各种任务。 ...
Golang - Packages 包依赖管理之使用Go模块 Mar 15 2018 内容涵盖Go基础package的概念、依赖包的简要发展史、vgo提案解决的问题、以及最后Go1.11的官方GoModule的介绍! ...
PHP处理相关细节 - FastCGI协议、FastCGI请求处理、ZendEngine、Opcode字节码 Aug 14 2016 FastCGI协议、FastCGI请求处理、ZendEngine、Opcode字节码,介绍了phpfpm在接收到fastcgi协议后或者直接通过php执行脚本,zend engine内部处理过程 ...
Mysql - 2054 Error (auth plugin匹配问题) Oct 27 2019 Mysql Tips ...
Asciinema - 基于Python开发的终端会话记录器 Jun 29 2019 Asciinema是一款基于Python开发的终端会话记录器,asciinema可让您轻松录制终端会话,并在终端和网络浏览器中重播!! ...
12-Factor - 构建SaaS应用提供了方法论 Oct 08 2018 12-Factor 为构建网络应用程序或软件即服务(SaaS)应用提供的方法论,这套理论适用于任意语言和后端服务(数据库、消息队列、缓存等)开发的应用程序, 初衷是分享在现代软件开发过程中发现的一些系统性问题,并加深对这些问题的认识。 ...
Core Dump Usage - 内核转存储使用 Jan 26 2019 在执行应用进程,尤其是常驻服务,可能存在内存泄露的引用OOM,但无法知道具体是由于什么问题引起,包括应用内存使用情况,可以考虑采用CoreDump分析问题; 另外一些应用导致异常终止,比较段错误、越界、浮点异常等,若应用没有对应的处理,也会导致问题很难复现,此时可以通过记录coredump来复现故障前的内存快照来进行分析(之前就发现PHP的OOM问题,是由于读取大量Excel文件导致) ...
五类网络IO模型(阻塞、非阻塞、select多路复用、基于信号、异步IO) Nov 12 2018 简要概述了Unix的五类I/O模型(阻塞IO、非阻塞轮询I、SELECT IO多路复用、信号IO驱动以及异步AIO模型),前面四类按POSIX描述,IO过程中对应用进程有阻塞,归类为**同步IO模型**,异步AIO模型归类为**异步IO模型**; 关于IO阻塞与非阻塞,是程序通过`fcntl`设置套接字文件描述符的状态为`O_NOBLOCK`,也可以直接基于socket指定`SOCK_NONBLOCK`类型标识; 关于信号IO驱动,是基于程序通过`fcntl`设定套接字的文件描述符状态为`O_ASYNC`,当内核数据准备就绪,会通过`SIGIO`信号通知应用进程; 最后,内容简要对select函数进行了说明,select函数对文件描述符设定了读、写、异常的检测,同时设定了检测的超时事项,最后,附带了一个Select的处理流程; ...
Redis - Quick Review(含LRU、分片、常见场景说明) Dec 17 2017 针对Redis快速回顾,涵盖Redis基础概念、基本数据类型、键操作、事务处理、分区、Redis的常见应用方式等内容,对Redis有个整体回顾 ...
TCP/IP(三)TCP数据传输过程 May 05 2016 TCP的传输过程比较复杂,涉及很多知识点,文章内容简要介绍了TCP的交互数据流、TCP块传输、Nagle算法、延时ACK、拥塞控制、流量控制、TCP定时器等内容 ...
TCP/IP(二)TCP连接的建立和终止、MSL、状态变迁图 Apr 08 2016 内容包括TCP协议概述,如何建立和终止一个TCP连接,数据传输过程,超时以及重传,定时器和性能相关内容。弄清TCP操作的关键在于它的状态变迁图,我们跟踪了连接建立与关闭的步骤以及它们的状态变迁过程。还讨论了在设计TCP并发服务器时TCP连接建立的具体实现方法。 ...
TCP/IP(一)协议族概述、链路层、MTU、IP、ICMP、Ping程序 Apr 03 2016 TCP/IP协议简要概述,以及链路层、MTU、IP网际协议、ICMP互联网控制报文协议、PING程序介绍 ...
ES - 基于Golang的简单使用ElasticSearch Nov 14 2019 ElasticSearch Docker ...
Xdebug Timeout Question Nov 12 2019 记一次Xdebug的采坑,请求Docker中的反向代理,解析一个简单的php脚本导致超时! ...
Linux Preformance Analyze CPU(二) - Linux性能分析之CPU Aug 21 2019 Linux Preformance Analyze ...
Linux Preformance Analyze Overview(一) - Linux性能分析大纲 Aug 21 2019 Linux Preformance Analyze ...
Ius- 安装和升级CentOS Yum仓库中未及时更新的包 Aug 11 2019 IUS提供了一种方式,可以安装支持的相关最新的软件包,IUS代表Inline with Upstream Stable,方便我们的软件包跟踪各自软件的最新上游版本。 ...