# 架构师技能树

## 系统架构能力

### 基本理论
- 扩展性设计
- 可用性设计
- 可靠性设计
- 一致性设计
- 负载均衡设计
- 过载保护设计

### 协议设计
- 二进制协议
- 文本协议

### 接入层架构设计
- DNS轮询
- 动静态分离
- 静态化
- 反向代理
- LVS
- F5
- CDN

### 逻辑层架构设计
- 连接池
- 串行化技术
- 影子master架构
- 批量写入
- 配置中心
- 去中心化
- 通讯机制
* 同步
+ RPC
+ RMI
* 异步
+ MQ
+ Cron
- 数据层架构设计
* 缓存优化
+ 高可用
+ 允许cache miss
* DAO&ORM
* 双主架构
* 主从同步
* 读写分离

## 架构性能优化

### 代码级别
- 关联代码优化
- cache对齐
- 分支预测
- copy on write
- 内联优化

### 工具优化
- OProfile
- Gprof
- JDK工具

### 系统优化
- cache
- 延迟计算
- 数据预读
- 异步
- 轮询与通知
- 内存池
- 模块化

## 工程架构能力

### 开发语言
- 站点开发
- 服务开发
- 脚本处理

### 设计模式
### 数据结构与算法
### 开发工具
### 调试工具

### 测试工具
- 单元测试
- 接口测试
- 性能测试
- 集成测试

### 运维与监控
- 监控
* 系统监控
* 日志监控
* 流量监控
* 接口监控
* 数据库监控
- 告警
- 日志

### 应用技术
- 硬件知识
* cpu
* mem
* disk
* net
- 第三方库
- 数据结构与算法
- 操作系统
* linux
- 接入层
* nginx
* apache
* lighttpd
* tomcat
- 框架
* SpringMvc
* Dubbo
* Thrift
- 缓存
* Redis
* Memcache
- 存储
* mysql
* mongodb
- 中间件
- 消息总线

## 架构师软素质
- 沟通能力
- 解决问题能力
- 学习能力
- 创新能力
- 项目管理能力

架构师技能树skill-map的更多相关文章

  1. 2010“架构师接龙”问答--杨卫华VS赵劼(转)

    add by zhj:虽然是几年前的文章,但还是很有参考价值的 原文:http://blog.zhaojie.me/2010/05/programmer-magazine-2010-5-archite ...

  2. 系统架构师JD

    #################################################################################################### ...

  3. 大数据架构师基础:hadoop家族,Cloudera产品系列等各种技术

    大数据我们都知道hadoop,可是还会各种各样的技术进入我们的视野:Spark,Storm,impala,让我们都反映不过来.为了能够更好的架构大数据项目,这里整理一下,供技术人员,项目经理,架构师选 ...

  4. Java进阶之路——从初级程序员到架构师,从小工到专家

    原创文章 怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作三五年之后开始迷茫的老程序员经常会问到 ...

  5. Java 架构师眼中的 HTTP 协议

    HTTP 协议的内容比较多,本文我们将分六部分来介绍. HTTP 协议的基本内容 什么是 HTTP 协议 首先我们来看协议是什么?协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守有规则的文 ...

  6. 架构师系列文:通过Spring Cloud组件Hystrix合并请求

    在前文里,我们讲述了通过Hystrix进行容错处理的方式,这里我们将讲述通过Hystrix合并请求的方式 哪怕一个URL请求调用的功能再简单,Web应用服务都至少会开启一个线程来提供服务,换句话说,有 ...

  7. 撩课-Web架构师养成系列第一篇

    前言 Web架构师养成系列共15篇,每周更新一篇,主要分享.探讨目前大前端领域(前端.后端.移动端)企业中正在用的各种成熟的.新的技术.部分文章也会分析一些框架的底层实现,让我们做到知其然知其所以然. ...

  8. 转头条:阿里p7架构师:三年经验应该具备什么样的技能?

    问:工作中,有时候实现一个功能,会去看有没有现成的轮子可用.对于重复造轮子与改造轮子有什么看法? 答:一定会的,其实这也是一个提高技术能力的方法,比如今天想做个日期转换的功能,JDK8有日期的新特性就 ...

  9. 架构师素养及从小菜进阶架构(CTO)的书籍【转】

    CTO要了解无线技术/搜索/大数据/数据库等. -- 通常定义架构有几个层次,这包括业务架构.产品架构.应用架构和技术架构: 1.业务架构:描述一个企业围绕一个行业做了哪些业务,例如支付行业的收单.退 ...

随机推荐

  1. LG2704 [NOI2001] 炮兵阵地

    题目描述 (试题来源:Link ) 司令部的将军们打算在 \(N\times M\) 的网格地图上部署他们的炮兵部队.一个 \(N\times M\) 的地图由 \(N\) 行 \(M\) 列组成,地 ...

  2. LG1440 求 m 区间内的最小值

    题目描述 一个含有 \(n\) 项的数列 (\(n≤ 2000000\)),求出每一项前的 \(m\) 个数到它这个区间内的最小值.若前面的数不足 \(m\) 项则从第 \(1\) 个数开始,若前面没 ...

  3. NTFS文件系统的UsnJrnl对于FileReference的处理

    1. 背景 http://stackoverflow.com/q/20418694/941650 这里面临的一个核心问题是,如果MFT Reference相等,能够表明这些记录代表的是同一个文件吗? ...

  4. exporter

    何为 Prometheus Exporter? Prometheus 监控基于一个很简单的模型: 主动抓取目标的指标接口(HTTP 协议)获取监控指标, 再存储到本地或远端的时序数据库. Promet ...

  5. ASP.NET MVC4获取当前系统时间

    <p>当前时间是:@ViewBag.CurrentDate.ToLongDateString()</p>

  6. KMP算法——字符匹配

     暴力匹配: 假设现在我们面临这样一个问题:有一个文本串S,和一个模式串P,现在要查找P在S中的位置,怎么查找呢? 如果用暴力匹配的思路,并假设现在文本串S匹配到 i 位置,模式串P匹配到 j 位置, ...

  7. 关于toString()的一些事情

    Java上输出一个数组的时候,不可以直接输出 System.out.println(arr); 直接输出数据的名称会输出数组的内存地址.换句话说,他的输出是: getClass().getName() ...

  8. Django ajax小例

    urls.py: url(r'^ajaxstudents/$', views.ajaxstudents), url(r'^getstudentsinfo/$', views.getstudentsin ...

  9. fiddler接口知识

    1. 访问接口时经常会出现乱码的情况,需要fiddler解码操作 2.域名过滤

  10. TP框架的模板路径问题以及常用的模板常量的定义

    在TP框架中,为了各个模块加载静态文件方便,往往是不需要按照默认的方式放置静态文件到/app/模块名/VIEWS/下面,而是在顶级目录下创建一个新的目录(比如说./tpl目录下),来存放静态文件   ...