[关闭]
@yangsp1 2017-12-24T06:49:10.000000Z 字数 11894 阅读 826

个人培训

A个人


第一周:架构师理论

群里有zookeeper的安装文件,大家看看zk的官网,可以在本地笔记本安装一下zk

此外,rpc-master可以在本地先玩起来,这个周日会讲的 ,先预热也行,啥都不会不要紧的

请大家复习一下jonathan讲的上一个版块内容,本周日开课的时候,会按小组回答问题的
2017-10-29 架构导论复习、分小组讨论
1、架构导论主要讲了哪些重点内容(*)?
tips:梳理出关键内容,突出重点、简明扼要、提出提纲。
什么是架构
架构的范围
架构师的分类
架构师的主要职责
架构师的基本素质要求
软件系统架构要素
软件架构的目标
软件架构的种类
架构设计的要素
架构重点

此处会快速补讲一个 架构方案的案例以巩固架构导论的学习内容。

标准:高可用、高性能、高伸缩、高可扩展、可复用、安全
对应问题:故障、高并发、性能及大量用户、需求增长、攻击

2、架构师的日常工作职责是什么,架构师和开发工程师有什么不同(*)?
确认需求:知道业务上要做什么
系统分解:模块化拆分
技术选型:
制定技术规格说明:制定标准

对上:业务需求
对中:设计
对下:指导工程师

对业务:需求
对管理:
对技术:
对人:

标准答案:
A:职责:主要职责
B:区别:顶层设计、技术选型、架构方案、对上沟通和文档(开发:主要针对对内的业务

3、业务架构师和基础架构师的区别和联系,基础架构师是否有什么职业发展瓶颈(*)?

标准答案:
A:区别:业务架构师更关注业务需求,基础架构师更关注技术。业务更重要。
B:瓶颈:技术架构到顶

4、从高级开发转型为架构师,需要从哪些方面下功夫(****)?
根本:思维转变

复习题目也发发给大家了,总共有40到题目,请大家先看30到题目
这些题目的完成时间 在11月10(周五)晚上。 没在这个时间点之前完成的,到时候,请在群里发个红包,金额不限,1元起,当然金额越大越好哈

第二周soa/msa

2017-10-29 soa&msa板块课程内容预告
架构导论板块复习--35m
STAR模型、冰山模型--40m
SOA&微服务总体介绍、SOA总体架构与功能--40m
构建SOA中间件的基础知识---40m
RPC--40m
服务注册中心--50m
分布式服务框架Dubbo介绍及实践--60m
分布式监控--dapper、主流分布式监控中间件及架构--50m
SOA核心技术之序列化与反序列化---40m

提醒:请各位带笔记本电脑,基本所有ppt都有代码示例、头脑风暴、动手实践的环节.

为什么star模型能很好的考察人的能力?
A:放松
B:理解能力
C:分析能力
D:解决能力
E:验证并总结收获

star注意哪些问题:
A:放松
B:准备:知已知彼
C:引导:反客为主

作为面试官,如何通过star模型考察候选人的能力?
答案:能出一个很好的task,让应聘者很好的表述问题

star面试信息有的效性:
A:
B:
C:

要点:

实践:
A:s-介绍不错的项目
数字说话:kps/tps/pv/uv/几个9/线程数(业务相关、经验值<为什么>)

出亮点:架构方面(高性能、高可用、高扩展、高伸缩、安全)

B:t-项目中具体任务

C:a-碰到什么问题及如何克服?
深度:如何这么做?

D:r-收获

注册:56-130
发现:314-395
减少网络请求(短时间内不会快速失败)
多个结点:注册同一服务
服务是固定的,节点是动态的

2017-11-5 开场题目----复习、分小组头脑风暴
1、star模型的是哪几个单词的缩写,star具体内容是什么,为什么star能很好地考察候选人的能力(****)?
答:SITUATION(背景)、TASK(任务)、ACTION(行动)和RESULT(结果)
原因:放松、理解分析、行动解决、验证总结并收获

A:放松
B:准备:知已知彼
C:引导:反客为主

标答:为什么能考察:大话题(s)-》小话题(t)-》 ->个人成长(R)

2、RPC基本技术原理是什么(*)?
答:代理、编码解码(序列化)、传输、
标答:类加载;动态加载;反射;编码;socket;解码;

3、RPC和SOA有什么区别和联系(*)?
答:SOA是一种产品架构理念
RPC是一种远程调用的方式。

标答: 联系:RPC是SOA的基础

4、SOA有哪些基本的核心功能(****)?
服务注册、服务提交方、服务消费方、服务监控
标答:

5、构建SOA中间件需要哪些基础知识(*)?
标答:类加载;动态加载;反射;编码;socket;解码;
spring/zk/

6、服务注册中心有哪些重要的作用(****)?
答:注册服务、发现服务

标答:注册、发现、实现高伸缩(动态的注册和移出-心跳;动态加机器)、实现高并发(加机器多了并发就高)、高可用(leader动态选举-本身高可用)

7、dubbo的核心流程是什么?

标答:图

8、dubbo有哪些优点、缺点,dubbo和dubbox有什么联系和区别?
dubbox是当当维护的一个分支:由于dubbo维护停滞(如:spring支持版本、序列化-json等)导致当当自己维护了一个新版本。

标答:优点:实现了注册发现、监控、扩展性、文档多、中小企业使用的多
缺点:产生早大数据未出现,链式监控少
spring版本支持低、zk支持版本低
不支持restFul

9、请讲讲dapper论文的主要内容,dappper有哪些核心的要素,各自的作用是什么?
答:traceId:、spanId,parentId

标答:

10、请讲讲常见的分布式监控中间件的架构
标答:收集(推拉)、分析处理、展示-典型的分布工监控图

11、有哪些编码解码的中间件?
标答:Protobuf、XStream、JSON、

12、如何评价编码解码中间件的好坏?
标答:码流大小、编解码速度

提醒:请各位带笔记本电脑,基本所有ppt都有代码示例、头脑风暴、动手实践的环节.

第三周 简历

2017-11-5 soa&msa板块课程内容预告
1、SOA板块分小组头脑风暴、问题回答、复习、总结--40m;
A:socket通信的基本过程图
B:长连接原因:性能好
C:BIO(阻塞io)
使用场景:低负载、低并发网络应用可以选择降低编程复杂度
问题:缺乏
D:NIO(非阻塞)
技术:多线程/多路复用(多socket复用同一线程)
使用场景:高负载、高并发
netty:
通信模型:Nio、bio
线程模型:Reactor单线程、多线程、主从模型(有线程池)
序列化方式:
2、SOA核心技术之服务发布、引用---45m

3、SOA核心技术之软负载实现--算法、实现原理、实践--45m
随机、ip hash、轮循、加权轮循

4、SOA核心技术之服务调用(此处加1案例)---50m
串行:
并行:
5、SOA核心技术之流量控制--45m
目的:防止压力过大而拖垮系统

6、SOA核心技术之服务通信框架--45m

7、SOA核心技术之服务降级--45m

8、ThreadLocal原理及在多层架构中的应用--45m

9、京东微服务中间件JSF介绍----40m

提醒:请各位带笔记本电脑,本课程的ppt都有代码示例、头脑风暴、动手实践的环节。

如何写架构师的简历?

1、简历格式需要按照猎聘或者51job的模板,进行调整;
2、整体风格而言,当前简历主要是高级工程师的风格,需调整为架构师的风格,晒出自己的亮点;
3、自我评价要突出架构方面的技能(概念性架构名词和具体的技术性名词);
4、建议花时间重点写好项目简介和项目职责,写好架构面试的埋点,即突出系统架构能力、分析设计能力、架构知识广度、架构知识深度、技术架构(非必须)、业务架构(非必须);
5、需要按照架构师简历的ppt课件内容,把架构的相关关键词写到简历中去;
6、项目描述的文字内容太多,需要精简,并且突出重点内容;

第四周:

2017-11-19 架构简历复习内容预告--分小组头脑风暴、问题、回答、总结
1、架构简历包括哪些重要内容?

2、如果是高级开发,要面试架构师,对于过往工作岗位而言,如何添加架构岗位的关键词?

高性能、高可用、可扩展、伸缩性、分布式、重构、优化、性能调优、......; 架构功底支撑、合理的场景设置、自圆其说并展现个人的架构潜力

3、架构师的需求种类有哪些,作为java从业人员,该如何选择?
- 通用型架构师
- 业务架构师(应用架构师)
- 基础架构师
- 大数据架构师
- 搜索架构师
- 前端架构师
- 运维架构师

选择:应用架构师

4、一般而言,hr或者资深架构人员会从哪些角度筛选架构候选人的简历?

5、作为高级开发,在简历上如何对冲架构经验的不足?
当前项目经验设置架构埋点:

6、架构师的日常职责有哪些?
架构师日常职责关键词:架构设计、重构、优化、架构方案、难题攻关、架构规划、规划、指导、培训、开发(核心模块)、编写
规范;

7、java通用型架构师需要掌握哪些常见的架构技能?
岗位描述(架构师日常职责):
架构、重构、优化、难题攻关、架构设计、架构方案、架构规划、规划、指导、培训、开发(核 心模块)、编写规范
岗位要求(架构师技能要求):
大型应用系统、大规模并发、分布式架构、SOA、框架、 高并发、高可用、高性能、设计模式、 多线程、JVM、缓存、消息队列、经验、学习能力、新技术(敏感)、(喜欢)钻研、调优、精通、 深刻理解、熟悉、掌握、了解

8、架构师招聘(岗位描述、岗位要求)和架构师简历有何关系?

9、如何写好自己的自我评价?
写好简历中的日常职责和自我评价

10、如何写好项目介绍(项目简介、项目职责)?
合适的动宾短语组合:深刻理解、精通
技术点:概念性技术(大型应用、高性能)、具体技术(soa/rpc)

11、架构师面试的时候,该如何选择哪种类型的项目?为什么?

12、项目简介比较忌讳的有哪些方面的内容?
- 描述内容太多,
- 重点不突出,无亮点

好的架构方案:
A:问题分析-背景
B:问题原因分析-问题产生的原因
C:解决方案
D:计划
E:成本

提醒:请老司机们带笔记本电脑,本课程的ppt都有代码示例、头脑风暴、动手实践的环节。

2017-11-19 soa&msa第三次课程复习、架构技能面试内容预告--分小组头脑风暴、问题、回答、总结
1、soa的整体架构图是什么?
服务管理平台

      服务注册中心

   订阅/通知       注册

服务调用者 服务提供者

   监控         监控

      服务监控

2、参考soa的整体架构图,请说明soa有哪些核心功能。
服务注册中心:
服务治理中心:各种配置和监控报表
服务监控中心:监控
服务路由:
服务限流:
服务负载均衡:
服务调用:
服务降级:
集群容错:
解码编码:

3、对于socket通信而言,什么是短连接、长连接、心跳检测,各自使用的场景是什么?

4、请阐述BIO、NIO、AIO相关概念
BIO:同步阻塞
NIO: 同步非阻塞IO
AIO: 异步非阻塞IO

5、传统的BIO socket通信有什么弊端?
线程

6、请阐述reactor设计模式
标答:分发的模式

7、java原生态的NIO有哪些不足之处?
标答:java nio太简单:网络、重连等问题,需要自己处理-netty

8、请谈谈你对netty的认识
标答:netty成熟,使用广泛;
reactor模式、零copy、性能高
编码、解码:支持多种协议

9、netty有哪些关键组件?
标答:
BootStrap
Channel接口
EventLoop接口
ChannelFuture接口
ChannelHandler接口
ChannelPipeline接口

10、有哪些常见的reactor线程模型?

11、请画画Netty线程模型(主从多线程Reactor)
标答:
单线程
多线程
主从多线程

12、何为socket通信的粘包、半包问题,一般怎么解决?
标答:
buffer与数据大小不一致
通过分隔符

13、netty是从哪些方面保证通信的高性能的?
标答:
编码协议
NIO
reactor/evenLoop
连接池

14、何为服务发布,请讲讲soa服务发布的基本流程
标答:服务提供方初始自己后,把自己注册到zk上

15、何为服务引用,请讲讲soa服务引用的基本流程
标答:服务调用方,把提供方信息列表缓存在本地

16、请讲讲soa负载均衡的概念,负载均衡有什么好处?
标答:每台均衡处理请求,防止宕机;-高可用

17、负载均衡实现原理是什么?
标答:根据一定算法,把请求路由到指定机器

18、有哪些常见的soa负载均衡算法?
标答:轮询、加权轮询、hash、随机

19、请讲讲soa调用的流程
标答:请求注册中心(缓存)-> rpc调用
类加载->反射->代理->编码->传输->解码->调用

20、soa调用有哪些常见的方式,各自使用的场景是什么?
标答:

21、soa限流有什么好处?从软件架构的哪个角度考虑使用服务限流的?
标答:防止接口出问题;高可用

22、soa有哪些常见的限流算法?
标答:令牌xxxx?

23、服务降级有哪两种形式,各自使用场景是什么?
标答:容错降级、屏蒋降级

24、谈谈你对Hystrix的看法
标答:自动熔断、容易误杀

25、请谈谈msa和rpc、soa的联系及区别
标答:msa/soa是服务架构
rpc是远程调用实现

26、msa优缺点
标答:

28、请谈谈如何使用spring boot
标答:

29、请整体谈谈spring cloud有哪些微服务组件,各自的功能是什么?
标答:

30、zookeeper和Eureka都可以做注册中心,从CAP层面考虑,二者设计的理念有何不同?
标答: zk:

提醒:请老司机们带笔记本电脑,本课程的ppt都有代码示例、头脑风暴、动手实践的环节。的架构有哪些好处及不足

27、什么类型的公司适合使用msa架构
标答:

2017-11-19 第三次soa&msa课程内容预告
1、架构简历复习---分小组头脑风暴、问题、回答、总结--30m
2、SOA核心技术之服务降级--40m;
3、微服务架构及实战---50m;
4、rpc复习:baidu-rpc外功修炼--15m;
5、监控soa监控案例分析:淘宝-分布式调用跟踪系统介绍--30m;
6、soa&msa架构案例分析:爱奇艺分布式服务框架---40m;
7、soa&msa架构案例分析:京东微服务实践-杰夫服务框架--40m;
8、soa&msa架构案例分析:淘宝分布式服务框架---40m;
9、课外自学内容---自学指导10m:
9.1 汽车之家微服务架构实践
9.2 大众点评网监控平台剖析
10、SOA&MSA课程小组头脑风暴、问题回答、复习、总结--60m;
提醒:请老司机们带笔记本电脑,本课程的ppt都有代码示例、头脑风暴、动手实践的环节。

eureka比zk好处:
eureka可以很好的应对因网络故障导致部分节点失去联系的情况,而不会像zk那个使整个

caller -> 类加载-> 反射-> 动态代理->编码->传输 ---> 解码->调用->provider

第五周:2017-11-25(jvm)

1. GC算法与种类

为什么要使用GC

jvm 的基本结构

程序= 算法(栈) + 数据结构(堆)

GC概念

1960 lisp第一次使用GC

引用计数法

什么是垃圾:对于一个对象A,只要有任何一个对象引用了A,则A的计数器就加1,当引用失效时,引用计数器减1.如果计数为0

引用计数器问题:
A:
B:

标记-清除算法

是现代垃圾回收算法的思想基础;
分两阶段:标记、清除;

标记-压缩

适合于存活对象较多的场合。

复制算法

相对标记清除:性能更高

原理:两块相同大小空间,从一块移到另一块
优点:快
问题:空间浪费一半,整合标记清理思想

改进:两块小的置换空间代替相同大小的大空间。小对象可以放到这两个小中的一个(空的那个),大对象(放不下)直接放到老年代;surviv1,2

分代思想

依据对象的存活周期进行分类,短命归为新生代,长命为老年代
根据不同代特点,选择合适算法
A:小量对象存活-复制算法(移动)

B:大量对象存活-标记清理/标记压缩

可触及性

可触及的
-从根节点可以触及到此对象
可复活的

不可触及的


- 栈中引用的对象
- 方法区中静态变量或常量

GC缺点

A: stop-the-world
-全局暂停
-全局停顿,所有java代码停止,native可执行,但不与jvm交互
-多半由于GC引起
dump线程、死锁检查、xxx
B:GC为什么会有全局停顿?
原因:一边产生一边打扫,无法完全清除

危害:长时间服务停止,没有响应
遇到HA系统,可能引起主备切换,严重危害生产环境。

GC参数-串行收集器

最古老,最稳定
效率高
可能会产生较长的停顿
-xx:+UseSerialGC
- 新生代,老年代使用串行回收
- 新生代复制算法
- 老年代标记-压缩

GC参数-并行收集器

-xx:+UsePerNewGC

2.设计模式(与性能有关)

单例模式

代理模式

性能:如缓存
授权:权限验证
其它:

静态代理:先规定好代理接口,由被代理实现接口或在代理类中转换。调用时,手动让调用方调用代理对象,代理对像对被代理进行封装(有点类装饰)。

动态代理:自动适应所有被代理类的方式,不需要规定接口或converter。-自动适应。

享元模式

原理:重复使用
类似:池,但池中对象是对等的(如线程池),享元中对象是不对等

装饰模式

原理:一层层套,增强对象-套娃;
优势:继承-单继承; 装饰-通过套,实现多个维度的变化-多继承。
使用:缓冲或缓存

value object模式

业务代理模式

缓冲

用处:生产与消费速度不致
用于:写
模式:装饰

缓存

用处:减小数据提供者压力
用于:读

对象池

对象创建与销毁成本太高

3. 性能监控

uptime

top

vmstat

找到系统内最消耗性能的线程

java自代工具

xxxx
jmap:生成java堆快照和对象统计

jstack:打印线程dump

jconsole:

visual vm :-jvisualvm
找到占用cpu时间最长的方法

jmc:飞行记录仪-一段时间内的运行情况(jdk8)

实践:
背景:cpu负载很高
原理:从os层找到哪个线程占用很高

A:运行程序
B:从os层找到进行高的进程和线程
C:查进程号-jps 、通过pidstat到到进行中号
D:通过jstack 进程号查询dump栈,通过线程号的16进行打到代码位置

问题:jstack和jmap会起stop-the-world吗?
答:是

第五周:2017-11-26(多线程)

为什么发展多核?单核架构已经走到尽头-向多核发展

Java并行程序基础

常用并发模式

JDK的并发工具

锁和多线程

dubbo中的多线程

第六周:2017-12-3 uml(uml、架构)

12月3日课程内容预告(
重点:
A-UML:用例模型、分析模型;
B-架构方案:介绍型、解决问题<关联后面的问题发现>;
问题发现方式或维度:从性能<监控、使用方沟通>、高可用<业务监控、技术监控>、扩展性<业务扩展>、复用性
分析问题:
解决方案:
落地计划:
C-文档:业务架构图、技术架构图、设计文档)

接口设计(文档):通过时序图产生。

1、UML用例模型---40m
2、UML分析模型(上)--40m
3、UML分析模型(下)--50m
4、UML设计模型、实施模型、部署模型--40m
5、如何写架构方案及实践---40m(理论)+40m(实践)
6、架构方案案例分析及实践--70m:
6.1 促销与抵用券架构优化
6.2 金融服务网关
6.3 BST Architecture Solutions
6.4 上海支付平台业务架构
7、架构视图、业务架构图、技术架构图、设计文档--45m

流程:用例模型 -> 分析模型 -> 设计模型 -> 实现模型 -> 部署模型

类的关系
有泛化(Generalization) -继承、
实现(Realization)-实现接口
依赖(Dependency) -引用
关联(Association) -
关联又分为一般关联关系和聚合关系(Aggregation),合成关系(Composition)。

用例模型

时序模型

水平维度特点:时间序列

垂直维度特点:系统的职责(功能点)

用例图与时序关系:用例是时序的起点,时序是对用例的细化

协作图

协作图与时序图区别:

为什么说协作图是一种特殊的时序图:

泳道图

活动图

不同场景使用的依据:粒度

时序图和活动图的使用场景有何不同,何时考虑使用时序图,何时考虑使用活动图?
答:总体介绍时-活动图,具体实施时-时序图。

协作图和活动图的使用场景有何不同,何时考虑使用协作图,何时考虑使用活动图?
答:
协作图特点:更粗,更简洁
活动图特点:更细,更具体

协作图-侧重于参与的角色,主要用于架构
活动图-侧重于具体细节,具体实现,主要用于具体业务设计

状态图

组件图

包图

如何写架构方案

职业规划:走向中高层

套路:方法
架构思考的维度:高可用、高性能、可伸缩、扩展性、复用性、安全性

uml:
    核心用例模型、分析模型、实施模型、设计模型、部署模型
    以ppt的方式画uml各类图形

分层:分层设计、职责分明

问题:新入职(转型)的架构师如何快速出架构方案?
多沟通(业务、技术)、接地气 -了解情况
发散思维,善于发现问题 -发现问题
拿来主义,微创新 - 快速复用
解决方案的可行性(最小demo) -
迭代计划,快速出成果 -计划实施,快速成果

架构视图

逻辑架构图
开发架构图
数据架构图
运行架构图
物理架构图

第七周:2017-12-10 (复习)

UML、架构方案、业务架构、技术架构、设计文档复习题目预告
1、uml有哪五种模型?
答:用例、分析、设计、实现、部署

2、常见的uml设计工具有哪些?
答:viso、rose、ppt、startUml

3、如果产品或者项目的流程复杂度比较高,作为架构师,该如何有效做系统分析,
或者如何引导相关干系人梳理相关需求、流程?
答:

4、uml分析模型包含哪些uml图形?为什么说有效掌握uml分析模型能提高个人的整体架构能力?
答:
A:时序、协作、状态、。。。
B:需求-系统分析-系统架构-系统设计-开发-测试-上线

A1:需求:
A2:分析:根据需求,分析出各种平台?
A3:架构-业务架构(平台《子系统》、功能)
技术架构(分层)
A4:设计-各子系统及接口、功能

5、时序图、协作图各自的特点及使用场景是什么?
答:时序图:更详情
特点:
场景:
协作图:更简洁

6、泳道图、活动图、状态图各自的特点及使用场景是什么?
答:泳道图:主要用于理业务

7、用例图包含哪些要素?用例图和分析模型有什么关系?
8、uml和软件工程有什么关系,软件工程各阶段的uml图形分别是哪些?
9、用例之间有哪几种关系?
10、包图作用是什么,包有哪些设计原则?
11、常见的解决问题的架构方案逻辑框架是什么?
12、新入职(转型)的架构师如何快速出架构方案?
答:
13、有哪5种架构视图?
14、画架构图需具备哪些能力?
15、如何画业务架构图?
16、常见的技术架构图分层具体有哪些?
17、如何画技术架构图?
18、部署架构图有什么作用?
19、你们的设计文档包括哪些内容?
20、有参与写过架构方案么,架构方案的提纲包含哪些内容,这个架构方案里包含哪些内容,请画画技术架构图、业务架构图?(要求用STAR模型)

今天的重点是:?

第八周:2017-12-17 (复习多线程)

线程

线程池

第九周:2017-12-24 (复习多线程)

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注