Great articles I have ever read

此文用于汇总一些我读过的觉得非常好的文章。

1.Linux Networking https://www.cs.unh.edu/cnrg/people/gherrin/linux-net.html

网络收发包流程

2.netstat command:
https://linuxacademy.com/blog/linux/netstat-network-analysis-and-troubleshooting-explained/

https://linux.cn/article-2434-1.html

3.Linux Networking:
Monitoring and Tuning the Linux Networking Stack: Receiving Data

Monitoring and Tuning the Linux Networking Stack: Sending Data

Illustrated Guide to Monitoring and Tuning the Linux Networking Stack: Receiving Data

Linux内核--网络栈实现分析(一)--网络栈初始化

Linux-eth0 eth0:1 和eth0.1关系、ifconfig以及虚拟IP实现介绍

4.Load Balancing:
HAProxy
Load Balancing with HAProxy
MGW——美团点评高性能四层负载均衡
Linux Virtual Server Tutorial
LVS(Linux Virtual Server) - Different Methods of Load Balancing
LVS-mini-HOWTO
Highly Available LVS
Layer 4 Load Balancing with HAProxy
Introduction to Modern Network Load Balancing and Proxy

5.Programming and Life
I've been a Web Developer for 17 Years, and this is what I learned - Daniel Khan
My Heroku Values
My Heroku Values 2

6.TCP/IP
Understanding TCP Sequence Acknowledge Number
TCP Keepalive
TCP发送数据流程详解
TCP Keepalive How-to
TCP Keepalive
TCP缺陷不完全记录
TCP异常终止
RFC Reader
NAT tutorial
从问题看本质: 研究TCP close_wait的内幕
不为人知的网络编程(一):浅析TCP协议中的疑难杂症
How TCP Sockets Work

TCP Puzzlers

Know your TCP system call sequences

再叙TIME_WAIT

Linux服务器丢包故障的解决思路及引申的TCP/IP协议栈理论

话说VLAN Tag 的“来龙去脉”

图解抓包

Understanding Throughput and TCP Windows

TCP Tuning and Network Troubleshooting

How TCP Sockets Work

TCP Flow Control

详解TCP\/IP重组

一次完整的HTTP事务是怎样一个过程?
一个socket能否被多线程写入

Flow Control in TCP

Understanding TCP/IP Network Stack & Writing Network Apps

Let's code a TCP/IP stack, 1: Ethernet & ARP

7.从ip addr add和ifconfig的区别看linux网卡ip地址的结构

8.Regular Expression
Regular Expression Matching Can Be Simple And Fast
正则表达式30分钟入门

9.JVM
Hexing the technical interview
Java Performance
OpenJDK Source Code
Garbage Collection
JVM源码分析之堆外内存完全解读
使用堆外内存
Linux与JVM的内存关系分析
理解 JVM 如何使用 Windows 和 Linux 上的本机内存
From Java code to Java heap
Using Java code to program real-time systems
7 个抓取 Java Thread Dumps 的方式
性能分析之-- JAVA Thread Dump 分析综述
JVM调优总结

10.iptables
iptables Primer
iptables illustration
iptables tutorial
A Deep Dive into Iptables and Netfilter Architecture

11.tcpdump
A Quick and Practical Reference for tcpdump
A tcpdump Tutorial and Primer with Examples

12.Linux Command
Top
netcat
/etc/passwd file
How to use strace
Unix Toolbox
Crontab

13.JVM
The Working Developer's Guide to Java Bytecode
Java Bytecode Fundamentals: Using Objects and Calling Methods
Java Bytecode For Discriminating Developers
Thread Context Class Loader
Biased Locking
Understanding how the JVM uses native memory on AIX
Java 8 动态类型语言Lambda表达式实现原理分析

14.NGINX
章亦春的Nginx教程
动态追踪技术漫谈
Nginx是这么运行的

15.DNS
gethostbyname与DNS

16.Restful
Optimistic Locking in a restful api
Thoughts on RESTful API Design

REST Architectural Constraints

17.Concurrency
Concurrency A Primer
Striped Executor Service

18.Kafka
Kafka in a nutshell

19.System Architecture
Gaudi System Architcecting

20.Bash
Bash Tutorial
Bash for Beginner
Writing a Unix Shell
set -ex - The most useful bash trick of the year

21.Java Encoding
Base64

22.Java Performance
Java Performance from Jakob Jenkov

23.Database
MySQL索引背后的数据结构及算法原理

25.Java Collection
Java 8系列之重新认识HashMap

26.Java NIO
Java NIO浅析
Asynchronous and Non-Blocking IO
Java IO VS. NIO
深入浅出NIO Socket实现机制
Introduction to the Java NIO Selector
IO模型
Readiness Selection到底有什么好处?
JDK10都发布了,nio你了解多少?

27.MQ
消息队列设计精要
分布式队列编程:模型、实战
分布式队列编程优化篇
高性能队列——Disruptor

28.C
Linker

29.MicroService
An Introduction to Microservice
What Is Microservices – Introduction To Microservice Architecture
Microservice Architecture — Learn, Build, and Deploy Applications

30.Networking Programming
高性能网络编程 - TCP Accept
高性能网络编程 - TCP消息发送

31.Python
The key differences between Python 2.7.x and Python 3.x with examples

32.SED
sed quick tutorial
sed简明教程-酷壳

33.Connection Pool
Apache DBCP
HikariCP

34.Garbage Collection
What is Garbage Collection
Plumbr Garbage Collection Handbook
Understanding Garbage Collection Log
Tuning the JVM for low pauses garbage collectors CMS and G1
Garbage Collectors - Serial vs. Parallel vs. CMS vs. G1 (and what’s new in Java 8)
7 Things You Thought You Knew About Garbage Collection - and Are Totally Wrong
Java Performance Tuning: Getting the Most Out of Your Garbage Collector
G1: One Garbage Collector To Rule Them All

35.网络安全
How to set up basic firewall
【上】安全HTTPS-全面详解对称加密,非对称加密,数字签名,数字证书和HTTPS
【下】安全HTTPS-全面详解对称加密,非对称加密,数字签名,数字证书和HTTPS

HTTPS和证书

数字证书原理
深入揭秘HTTPS安全问题&连接建立全过程
Java-JSSE-SSL/TLS编程代码实例-双向认证
keytool+tomcat 单向/双向认证的配置

36.JIT
A crash course on JIT

37.HTTP
HTTP Made Really Easy

38.DevOps
Capistrano
How To Use Capistrano to Automate Deployments: Getting Started
Deploy with Capistrano

39.Ruby
How to Install Ruby 2.1.8 on CentOS & RHEL using RVM

40.Algorithm
XOR
Bit Operation
Find the Single Two Numbers
数据结构之Trie树

41.NGINX
Understanding Nginx Server and Location Block Selection Algorithms

42.UUID
A Brief History to UUID

43.OAuth
OAuth for Dummies
An Introduction to OAuth 2.0
OAuth Introduction
互联网OAuth 2.0开放授权原理

44.JNI
Java中System.loadLibrary() 的执行过程
JNI Tips

45.Operating System
What every programmer should know about memory What Every Programmer should know about memory PDF
Fork Bomb
Kernel Thread Implementation Details
File descriptors explained

以操作系统的角度说进程和线程

Operating System: From 0 to 1

46.网络安全
深入浅出DDoS原来这篇文章是云舒(魏兴国)写的,怪不得!
浅谈DDoS攻击与防御
浅析大规模DDoS防御架构
Linux应急响应姿势

47.Docker
Docker basics - connecting containers
Docker tutorial
手把手教你写Docker
Docker 核心技术与实现原理

48.Java
Do you really get ClassLoaders?

49.Computer
Gallery of Processor Cache Effects 中文版

50.Consistent Hash
一致性哈希(Consistent Hashing)原理

51.定位问题
如何定位消耗CPU最多的线程 Linux性能分析工具合集
Connection Timed out
查看linux中的TCP连接数

52.Netty
Netty为啥可靠
Netty高性能之道
Netty百万级推送

53.epoll
应用服务器中对JDK的epoll空转bug的处理
Epoll is fundamentally broken
The Implementation of epoll (1)
Async IO on Linux: select, poll, and epoll
大话 Select、Poll、Epoll

54.架构
从0到1:微信后台系统的演进之路
从单一WAR到多活, 记述一个创业公司的架构演变
互联网后端基础设施架构
微服务,API网关与Kong
MicroService

55.Data Structure
Data Structures for Coding Interviews
The Trie: A Neglected Data Structure

56.Elixir
Joy of Elixir

57.Spring
Using JPA in Spring without referencing Spring

68.JPA
JPA 2 | EntityManagers, Transactions and everything around it

69.Cassandra
Cassandra Introduction
Cassandra Architecture
The sweet spot for Cassandra secondary indexing
Cassandra数据模型
Cassandra架构

70.Java编码
Java 中文字符串编码和转换原理(GBK 转 UTF-8)

71.VM
KVM 虚拟机安装详解
KVM详解
KVM最初的2小时(KVM从入门到入不了门)
带你走进虚拟化世界之KVM
虚拟化技术原理(CPU、内存、IO)
QEMU,KVM及QEMU-KVM介绍
Linux入门学习教程:虚拟机体验之KVM篇

72.Erlang
Introducing Talla: An Erlang implementation of Tor

73.RESTful
RESTful Web Services: A Tutorial

74.DevOps
Linux系统排查
Linux Load Averages: Solving the Mystery

Kernel Tuning

Network Performance Tuning

详解coredump

75.Cloud
What is NFV
NFV to VNF to SDN – What Does It All Mean
云数据中心的服务类型
NFV闲聊
A Cheat Sheet for Understanding “NFV Architecture”
Introduction to Network Function Virtualization(NFV)
云计算与KVM虚拟化
《SDN软件定义网络从入门到精通》导论课
What is Network Functions Virtualization?

76.Crawler
Python Website Crawl Tutorial

77.System Architecture
Twitter架构如何支持上亿用户

Defining Stateless and Stateful

78.Web Development
SSO单点登录流程 单点登录系列之——HTTP请求与Cookie讲解

79.High Availability
高可用和高并发的一点思考

80.SSO
SSO Definitive Guide from Auth0

81.Java and CPU
CPU Cache与高性能编程
关于CPU Cache -- 程序猿需要知道的那些事

82.Serialization
关于序列化协议的思考

83.Log
Introduction to Log Management
Parsing log with Logstash

84.What happens when
What happens when

85.NFV
A Guide to Network Function Virtualization

86.WEB
How does a web session work?
A Typical HTTP Session
KeepAlive优化

87.State Machine
Why Developers Never Use State Machines
How I Learned to Stop Worrying and ❤️ the State Machine

88.BlockChain and Bit Coin:
比特币的原理
比特币原理
使用Java语言从零开始创建区块链

89.OpenStack
OpenStack Heat 如何来实现和支持编排
OpenStack HOT分析
openstack系列--网络虚拟化基础知识
OpenStack Heat服务介绍
OpenStack集群支持多虚拟化技术的实现方法
OpenStack入门科普
每天5分钟玩转OpenStack

90.Encoding
What every programmer absolutely, positively needs to know about encodings and character sets to work with text

The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

91.Reactive Programming
What is Reactive Programming

92.CGI
CGI、FastCGI和PHP-FPM关系图解
CGI与FastCGI是什么

93.Work Methodology
How to win friends and influence repos.

94.HTTPS
The First Few Milliseconds of an HTTPS Connection
How does HTTPS work?
深入浅出HTTPS
用java实现HTTPS
HTTPS工作原理
HTTPS and Java
HTTPS 原理详解
HTTPS的来龙去脉1
HTTP的来龙去脉2
图文解密HTTPS
HTTP Over TLS
Java实现 SSL双向认证 Socket
HTTPS单向认证和双向认证
HTTPS加密协议详解(二):TLS/SSL工作原理
SSL/TLS 双向认证(一) -- SSL/TLS工作原理
A cartoon intro to DNS over HTTPS

Survival guides - TLS/SSL and SSL (X.509) Certificates

大型网站的 HTTPS 实践

95.GC
Weak, Soft, and Phantom References in Java (and Why They Matter)
How Memory Leaks Happen in Java Apps

96.NIO
Async IO on Linux: select, poll, and epoll
The Implementation of epoll (1)
透彻Linux(Unix)五种IO模型

97.Database Index
深入浅出数据库索引原理

98.Browser
How does Browser work?

99.Front End
Front-End Developer Handbook 2018

100.Actor
IBM JavaActors

101.Linux kernel
linux内存分配与回收

102.Study&Life
张五常的学习方法

103.Beam
Apache Beam的前世今生

104.Websocket
从Chrome源码看WebSocket
漫谈 polling 和 Websocket

105.Study and Career
How to be manager

106.System Architecture
当服务QPS增高时我们做什么

107.Chrome源码
从Chrome源码看DNS解析过程
从Chrome源码看浏览器如何加载资源
从Chrome源码看HTTP/2
从Chrome源码看HTTPS

Written on 28 February 2017