# 架构师技能树

## 系统架构能力

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

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

### 接入层架构设计
- 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. 服务器上的 IPProxy代理设置

    1.window 平台 CCProxy 安装包 传送门: http://www.xue51.com/soft/2794.html 该页面详细的说明了ccproxy怎么安装.怎么破jie.... 下面老 ...

  2. spring4.1.8扩展实战之三:广播与监听

    提到广播与监听,我们常常会想到RabbitMQ.Kafka等消息中间件,这些常用于分布式系统中多个应用之间,有时候应用自身内部也有广播和监听的需求(例如某个核心数据发生变化后,有些业务模块希望立即被感 ...

  3. 使用Python的PIL模块来进行图片对比

    使用Python的PIL模块来进行图片对比 在使用google或者baidu搜图的时候会发现有一个图片颜色选项,感觉非常有意思,有人可能会想这肯定是人为的去划分的,呵呵,有这种可能,但是估计人会累死, ...

  4. centos 7 安装 redis 及 php-redis 拓展

    ===============redis 安装========================== 直接yum 安装的redis 不是最新版本 yum install redis 如果要安装最新的re ...

  5. Html5 学习笔记 【PC固定布局】 实战4 footer 区域

    最终效果图: Html代码: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta chars ...

  6. tfsenflow队列|tf.train.slice_input_producer|tf.train.Coordinator|tf.train.start_queue_runners

      #### ''' tf.train.slice_input_producer :定义样本放入文件名队列的方式[迭代次数,是否乱序],但此时文件名队列还没有真正写入数据 slice_input_pr ...

  7. 【Python—windows 下 virtualEnv 使用】

    用pip安装virtualenv pip3 install virtualenv 在相应的文件夹中创建一个独立的Python运行环境,命名为env. 之后会自动创建一个 env 文件夹,有: Incl ...

  8. iOS 自己写的对话框中加入三个输入框

    -(void)dialog:(NSString*)title okTitle:(NSString*)okTitle placeholder:(NSString*)placeholder finish: ...

  9. leetcode.双指针.524通过删除字母匹配到字典里最长单词-Java

    1. 具体题目 给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到.如果答案不止一个,返回长度最长且字典顺序最小的字符串.如果答案不存在,则返回空 ...

  10. v8引擎的优化

    1.编译优化 V8采用JIT即使编译技术. 例如JAVA是先编译成字节码,再由JVM编译成机器码,V8则没有中间的字节码,直接由源码生成语法树,然后编译成机器码. 2.隐藏类 当定义一个构造函数,使用 ...