- 随着公司规模的发展,合理稳定的技术架构是业务快速发展的保证,目前很多互联网公司的规模已经很大,在他们成长的过程中,系统结构的变更是怎样的,对我们又有什么样的借鉴?业务规模、数据量越来越大,传统的单机系统已经不能支持,分布式系统的坑有哪些,有哪些优秀的设计?
- 作为一个主打后端的开发,以 Java 语言为例,需要掌握到什么程度,对涉及到的周边比如 数据结构、算法、jvm 优化、Linux、docker 等有哪些需要掌握的知识?
一、Java 语言
1.1 规范
- Java 语言、虚拟机规范 - Java Language and Virtual Machine Specifications Java SE6/7/8 每个版本中的语言规范、虚拟机规范进行说明。
- Google 代码规范 - Google Code Style Guide 中文翻译版本Google Java 编程风格指南
- 更多内容 ……
1.2 JVM 虚拟机
- Understanding Java Garbage Collection 阅读完《深入理解Java虚拟机第二版》后,感觉没有形成一个大局观,这篇文章介绍的很详细,每个收集器的区别等。
- HotspotOverview.pdf 基于SE6,Compilation、Synchronization、Garbage Collection、A Performance Future几个部分来介绍。最权威的介绍 Hotspot 还是看 Oracle 官方[Java SE HotSpot at a Glance]
- How to Monitor Java Garbage Collection 如何利用系统自带的监控工具进行监控 GC 的状态
- 更多内容 ……
1.3 其它
二、Linux
2.1 Linux 常用命令
- 每天一个 Linux 命令系列教程
- Linux工具快速教程 - 分类介绍各种命令
- 最常用的 Linux 命令大全 包括查看系统信息、文本处理、文件搜索、磁盘处理等
- 更多内容 ……
2.2 Shell 脚本
- Shell Scripting: What are some time-saving tips that every Linux user should know? quora 上面的回答,很精彩。
- 快乐的 Linux 命令行 - 学习 Shell 脚本 介绍什么是 Shell 、配置、常见任务、工具以及 Shell 流程控制、if~else 循环、字符串数组等。
- 更多内容 ……
2.3 效率工具
- Zsh - Oh my zsh xirong 写过一篇文章,专门介绍 Zsh 的配置等,可以阅读提高命令效率之终极利器 Oh-my-zsh
- Linux Bash Shell Cheat Sheet
- 更多内容 ……
2.4 Linux 图书
2.5 Linux 监控
- Linux 性能监测专题 - LinuxCn 列举了包括 CPU、Memory、IO、Network 等许多基础组件的监控,以及进程、性能等。
- 更多内容 ……
三、分布式系统
- 分布式系统的特点以及设计理念 通过网络松耦合、对机器硬件要求低、强调横向扩展、不允许单点失效、尽可能减少节点网络开销、服务无状态等特点的介绍。
- book-Designing Data-Intensive Applications 评价很高
- 关于 CAP 理论的深度剖析
- 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
- 可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)
- 分区容忍性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。
- 更多内容 ……
四、大型互联网技术架构分享
- Stack Overflow: The Architecture - 2016 Edition stack Overflow最新版的架构设计
- 追求极致-从技术细节看美团架构 讲述美团作为电商网站的技术架构发展历程,没有最好的架构,只有不断优化。
- 挖财技术体系架构以及 Scala 在挖财的实践 后端技术用的主要是比较大众的东西,Web 容器用 Tomcat,框架主要是 Spring MVC,也有少量的 Play,中间服务层是 Dubbo,微容器用Spring Boot,服务注册这一块是用 ZooKeeper,核心业务开发方式还是围绕着 Spring 和 Mybatis 等;数据的存储这块是 MySQL 和 Hbase,分布存储这块是用阿里巴巴之前开源的一个中间件 Cobar。消息和实时计算这块主要是 Kafka, Storm,日志以及监控系统则是用典型的ELK和Zabbix。(对于中小型的公司来讲有借鉴意义)
- 单表 60 亿记录等大数据场景的 MySQL 优化和运维之道
- 乐视电商云的整体架构与技术实现
- MongoDB在58同城的应用实践
- 今日头条架构演进之路——高压下的架构演进专题 解耦、微服务(轻量级)、自动化。
- 更多内容 ……
五、周边
5.1 数据结构及算法
复习「数据结构常用算法」进行的练习,整节来源于书籍《大话数据结构》
- 冒泡排序及其改进 ,源码地址BubbleSort
- 简单选择排序 ,源码地址SelectionSort
- 直接插入排序,源码地址SelectionSort
- 更多内容 ……
5.1 Python
- 廖雪峰的 Python 教程
- Python Cookbook 3rd Edition Documentation python3 学习手册,翻译的很全面,是本好资料。
- 更多内容 ……
5.2 Docker
- Docker学习路线图 循序渐进学习,包含阿里云容器的一些资料。
- Docker 收集资料 包括图书、网站、文档等很多资料。
- Docker 生态体系 xmind很清楚。