1、star模型的是哪几个单词的缩写,star具体内容是什么,为什么star能很好地考察候选人的能力?
star模型:situation(情景) task(任务) action(行动) result(结果)
定义:基于一种假设,根据候选人过去的行为表现可以预测将来的绩效表现。
特定的场景或者环境完成某一任务所采取的行为和产生的结果,判断候选人的能力和素质。
有效性:候选人所讲的行为事件离现在越近越能够预测未来的表现
事件的复杂程度不同,它所预示的行为等级也就不同。
行为出现的频次越多越能够代表候选人的能力和特性。
素质冰山模型:
知识、专业技能、综合能力、个性特征、动机、价值观。
2、RPC基本技术原理是什么?
RpcClient:负责导入(import)远程接口的代理实现
RpcServer:负责导出(export)远程接口
1、调用代理RpcProxy,调用代理的方法,执行invoke
2、调用代理RpcProxy的create方法,封装被代理类的属性,查找服务(服务发现技术),随机获取服务的地址,
创建RpcClient,链接服务端,通过通信技术(netty)实现RPC代理HelloService接口
3、RpcClient 向pipeline中序列化技术添加编码、解码,链接服务端,发送消息 ,用线程等待的方式决定
4、RpcServer :Channel, 发布者,监听客户端的连接,接收到新的客户端请求,Processor,负责在服务端控制调用过程, 包括管理调用线程池、超时时间等
3、RPC和SOA有什么区别和联系?
RPC是半成品的SOA框架,服务间依赖关系变得复杂,调用量,上线容易下线难,需要管理、监控。访问的安全策略如何制定。
总之就是服务的治理。要解决这些问题,必须通过服务框架+ 服务治理来完成,单凭RPC框架无法解决服务治理问题。
4、SOA有哪些基本的核心功能?
服务注册中心:管理服务的发布、通知,避免硬编码服务地址信息,实现服务动态发现,实现服务透明化调用。
服务治理中心:一般包括服务治理Portal、服务监控、参数设置、服务报表等信息。
服务监控:调用日志,性能监控、服务统计报表、告警
服务路由:服务消费者通过服务名称,在服务列表中找到需要调用的服务地址列表
透明化路由、负载均衡、本地路由优先策略、路由规则
服务限流:资源成为瓶颈时,服务端和客户端的动态流控
并发计数器法、漏桶算法、令牌桶算法
服务调用:异步调用、同步调用、并行调用、泛化调用
服务降级:服务降级场景:容错降级(Mock)、屏蔽降级(Switch)
集群容错:
编码解码:编码解码与通信协议是解耦的,同一种协议(eg:http)可能有多种编解码
(json、protocol buffer、thrift等)形式;
网络通信:三种模型:BIO、NIO、AIO
• 服务注册中心
• 服务路由
• 负载均衡
• 集群容错
• 服务调用
• 服务降级
• 服务多版本
• 服务灰度发布
• 流量控制
• 多协议
• 序列化
5、构建SOA中间件需要哪些基础知识?
通信框架、
序列化与反序列化
协议栈
• RPC
• 并发编程 :线程池、多线程基础知识
• 反射:反射用法:构建对象、动态执行方法、获取类的信息、获取对象属于哪个类、动态操作属性
• 动态代理:了解静态代理和动态代理
• 通信框架:三种模型:BIO、NIO、AIO;Socket通信框架:Netty、Mina
• Spring
• SOA功能特性
• SOA服务治理
• SOA性能和可靠性
6、服务注册中心有哪些重要的作用?
实现透明化调用
实现架构的伸缩性
实现架构高性能
实现分布式架构的重要基础
基于zk,实现集群管理、软负载、服务发布/订阅等功能;
运用zk,实现服务注册中心:
服务注册:SOA服务端启动服务,将服务提供者信息(服务名称、ip、port等信息)组成的znode路径写入zk;
服务发现:服务消费方发起服务调用之前,先连接到zk;消费方对服务提供方节点路径注册监听器,并且获取服务提供方信息并且缓存到本地;
发起调用时,调用方按照某种负载均衡算法,从本地服务缓存列表中选取某一个服务提供 方,对服务提供方发起调用;
服务的自动下线:该机器与zk连接断掉后,该临时节点会被自动删除;同时触发服务消费方对服务提供方路径的监听器,消费方收到被删除提供方信息, 刷新本地提供方信息缓存,从缓存中删除下线的某个提供方信息;
服务的自动扩容上线:触发消费方对服务提供方路径的监听器,消费方收到新增的服务方节点信息。
9、请讲讲dapper论文的主要内容,dappper有哪些核心的要素,各自的作用是什么?
Trace 一次完整的跟踪叫trace,从请求到服务器开始,服务器返回response结束,跟踪每次rpc调用的耗时;
span 在调用rpc服务中,产生一个span用来记录rpc接受到请求的时间,rpc返回请求的时间;
annotations:基本标注列表,一个标注可以理解成span生命周期中重要时刻的数据快照,比如一个标注中一般包含发生时刻 (timestamp)、事件类型(value)、端点(endpoint)等信息;
trace_id:用于标识一次完整的请求id;
span_id:当前这次调用span_id;
parent_id:上层服务的调用span_id,最上层服务parent_id为null;
annotations:用于标记的时间戳。在span的标记点,记录整个span时间段发生的事件。
dapper实现点:当一个线程在处理跟踪控制路径的过程中,dapper把这次跟踪的上下文在ThreadLocal中进行存储。追踪上下文是一个小而且容易复制的容器,其中承载了Scan的属性,比如跟踪ID和span ID;
10、请讲讲常见的分布式监控中间件的架构
典型的分布式监控架构
鹰眼Storm集群 从 日志收集agent(带有鹰眼埋点的中间件写入日志文件,日志收集agent读取日志文件)或者应用集群 实时收取日志;
鹰眼Storm集群把全量日志 写入 HDFS 《--》 Hadoop集群,MapRedure处理,把计算结果写入HDFS;
鹰眼Storm集群把实时日志写入Hbase;
鹰眼服务器读取原始日志与分析结果,数据输出与展现。
11、分布式监控中间件有哪些应用,可以解决哪些实际的问题?
• Zipkin(twitter)
• 鹰眼(淘宝)
• Watchman(新浪)
• Hydra、CallGraph(京东)
• CAT(大众点评)
• CAL(eBay)
调用链跟踪:
• 排查前端某页面响应很慢或报错的原因
• 查看这个页面的调用链,定位瓶颈点、故障点
• 应用在日志中打印当前上下文的调用链 ID,关联异常堆栈日志
• 关联系统资源数据,如 load、内存、JVM 状况
• 实时跟踪当前客户端的所有请求的调用链
• 了解每个请求背后的应用间交互过程
调用路径分析:
• 应用的关键路径:应用被调用得最多的入口、服务是哪些;突出关键:热点、耗时瓶颈、易故障点、变化点;主要用于容量评估、性能优化
• 验证调用路径是否符合预期:衡量网络调用的均衡性;调用在单元内的路由正确性
• 实时分析前端入口的容量走势:大促链路监控和高峰预警
star模型:situation(情景) task(任务) action(行动) result(结果)
定义:基于一种假设,根据候选人过去的行为表现可以预测将来的绩效表现。
特定的场景或者环境完成某一任务所采取的行为和产生的结果,判断候选人的能力和素质。
有效性:候选人所讲的行为事件离现在越近越能够预测未来的表现
事件的复杂程度不同,它所预示的行为等级也就不同。
行为出现的频次越多越能够代表候选人的能力和特性。
素质冰山模型:
知识、专业技能、综合能力、个性特征、动机、价值观。
2、RPC基本技术原理是什么?
RpcClient:负责导入(import)远程接口的代理实现
RpcServer:负责导出(export)远程接口
1、调用代理RpcProxy,调用代理的方法,执行invoke
2、调用代理RpcProxy的create方法,封装被代理类的属性,查找服务(服务发现技术),随机获取服务的地址,
创建RpcClient,链接服务端,通过通信技术(netty)实现RPC代理HelloService接口
3、RpcClient 向pipeline中序列化技术添加编码、解码,链接服务端,发送消息 ,用线程等待的方式决定
4、RpcServer :Channel, 发布者,监听客户端的连接,接收到新的客户端请求,Processor,负责在服务端控制调用过程, 包括管理调用线程池、超时时间等
5、RpcHandler 接收消息,处理消息,采用反射的技术调用实现类。
RPC是半成品的SOA框架,服务间依赖关系变得复杂,调用量,上线容易下线难,需要管理、监控。访问的安全策略如何制定。
总之就是服务的治理。要解决这些问题,必须通过服务框架+ 服务治理来完成,单凭RPC框架无法解决服务治理问题。
4、SOA有哪些基本的核心功能?
服务注册中心:管理服务的发布、通知,避免硬编码服务地址信息,实现服务动态发现,实现服务透明化调用。
服务治理中心:一般包括服务治理Portal、服务监控、参数设置、服务报表等信息。
服务监控:调用日志,性能监控、服务统计报表、告警
服务路由:服务消费者通过服务名称,在服务列表中找到需要调用的服务地址列表
透明化路由、负载均衡、本地路由优先策略、路由规则
服务限流:资源成为瓶颈时,服务端和客户端的动态流控
并发计数器法、漏桶算法、令牌桶算法
服务调用:异步调用、同步调用、并行调用、泛化调用
服务降级:服务降级场景:容错降级(Mock)、屏蔽降级(Switch)
集群容错:
编码解码:编码解码与通信协议是解耦的,同一种协议(eg:http)可能有多种编解码
(json、protocol buffer、thrift等)形式;
网络通信:三种模型:BIO、NIO、AIO
Socket通信框架:Netty和Mina
• 服务注册中心
• 服务路由
• 负载均衡
• 集群容错
• 服务调用
• 服务降级
• 服务多版本
• 服务灰度发布
• 流量控制
• 多协议
• 序列化
5、构建SOA中间件需要哪些基础知识?
通信框架、
序列化与反序列化
协议栈
参数传递
• RPC
• 并发编程 :线程池、多线程基础知识
• 反射:反射用法:构建对象、动态执行方法、获取类的信息、获取对象属于哪个类、动态操作属性
• 动态代理:了解静态代理和动态代理
• 通信框架:三种模型:BIO、NIO、AIO;Socket通信框架:Netty、Mina
• Spring
• SOA功能特性
• SOA服务治理
• SOA性能和可靠性
6、服务注册中心有哪些重要的作用?
实现透明化调用
实现架构的伸缩性
实现架构高性能
实现分布式架构的重要基础
zk是开源的分布式协调框架;
Hbase、Kafka、Sole等知名项目是均使用zk;
zk提供统一命名服务、配置管理、分布式锁等分布式基础服务;基于zk,实现集群管理、软负载、服务发布/订阅等功能;
运用zk,实现服务注册中心:
服务注册:SOA服务端启动服务,将服务提供者信息(服务名称、ip、port等信息)组成的znode路径写入zk;
服务发现:服务消费方发起服务调用之前,先连接到zk;消费方对服务提供方节点路径注册监听器,并且获取服务提供方信息并且缓存到本地;
发起调用时,调用方按照某种负载均衡算法,从本地服务缓存列表中选取某一个服务提供 方,对服务提供方发起调用;
服务的自动下线:该机器与zk连接断掉后,该临时节点会被自动删除;同时触发服务消费方对服务提供方路径的监听器,消费方收到被删除提供方信息, 刷新本地提供方信息缓存,从缓存中删除下线的某个提供方信息;
服务的自动扩容上线:触发消费方对服务提供方路径的监听器,消费方收到新增的服务方节点信息。
9、请讲讲dapper论文的主要内容,dappper有哪些核心的要素,各自的作用是什么?
Trace 一次完整的跟踪叫trace,从请求到服务器开始,服务器返回response结束,跟踪每次rpc调用的耗时;
span 在调用rpc服务中,产生一个span用来记录rpc接受到请求的时间,rpc返回请求的时间;
annotations:基本标注列表,一个标注可以理解成span生命周期中重要时刻的数据快照,比如一个标注中一般包含发生时刻 (timestamp)、事件类型(value)、端点(endpoint)等信息;
trace_id:用于标识一次完整的请求id;
span_id:当前这次调用span_id;
parent_id:上层服务的调用span_id,最上层服务parent_id为null;
annotations:用于标记的时间戳。在span的标记点,记录整个span时间段发生的事件。
dapper实现点:当一个线程在处理跟踪控制路径的过程中,dapper把这次跟踪的上下文在ThreadLocal中进行存储。追踪上下文是一个小而且容易复制的容器,其中承载了Scan的属性,比如跟踪ID和span ID;
10、请讲讲常见的分布式监控中间件的架构
典型的分布式监控架构
鹰眼Storm集群 从 日志收集agent(带有鹰眼埋点的中间件写入日志文件,日志收集agent读取日志文件)或者应用集群 实时收取日志;
鹰眼Storm集群把全量日志 写入 HDFS 《--》 Hadoop集群,MapRedure处理,把计算结果写入HDFS;
鹰眼Storm集群把实时日志写入Hbase;
鹰眼服务器读取原始日志与分析结果,数据输出与展现。
11、分布式监控中间件有哪些应用,可以解决哪些实际的问题?
• Zipkin(twitter)
• 鹰眼(淘宝)
• Watchman(新浪)
• Hydra、CallGraph(京东)
• CAT(大众点评)
• CAL(eBay)
调用链跟踪:
• 排查前端某页面响应很慢或报错的原因
• 查看这个页面的调用链,定位瓶颈点、故障点
• 应用在日志中打印当前上下文的调用链 ID,关联异常堆栈日志
• 关联系统资源数据,如 load、内存、JVM 状况
• 实时跟踪当前客户端的所有请求的调用链
• 了解每个请求背后的应用间交互过程
调用路径分析:
• 应用的关键路径:应用被调用得最多的入口、服务是哪些;突出关键:热点、耗时瓶颈、易故障点、变化点;主要用于容量评估、性能优化
• 验证调用路径是否符合预期:衡量网络调用的均衡性;调用在单元内的路由正确性
• 实时分析前端入口的容量走势:大促链路监控和高峰预警