怎么理解分布式,分布式面试题( 五 )


两年的java工作经验,面试时会被问到些什么问题?
java程序都会被问到的面试问题,月薪20k 多线程相关问题实现多线程有哪些方式?有什么异同?线程的生命周期线程池常用的有哪些?线程池的工作原理如何启动和销毁线程什么是线程死锁悲观锁和乐观锁,公平锁和非公平锁Java集合原理集合的类图集合的数据结构实现集合的效率集合的遍历JVM虚拟机java的内存模型是什么样的jvm内存分为哪些区域内存溢出有些类型,如何解决垃圾回收器有哪些垃圾回收算法有哪些jvm常用的参数如何定位分析jvm线上问题有哪些分析jvm的工具数据库索引的分类索引的优化索引的原理事物的类型联合查询,子查询效率问题如何实现读写分离框架类spring(aop,依赖注入)springmvc(原理)dubbo(原理,支持哪些协议)mybites(原理,常用的配置)算法类常见排序原理和实现(8种)求二叉树的高度二叉树的遍历平衡二叉树和红黑树b树,b 树递归和分治思想贪婪算法linux服务器你常用的linux命令有哪些linux权限系统如何写tomcat重启脚本如何用命令搜索日志,分析日志web服务器nginx配置反向代理nginx配置负载均衡(哪几种)apache配置反向代理tomcat参数调优项目你认为做的最有成就的一个项目你在这个项目中负责什么内容遇到了哪些难点,如何解决的你认为这个项目还有哪些改进的地方,为什么这么做那如果有感兴趣老友们想要获取完整面试题的呢...可以去我的主页看看我的面试文章,也可以私信我【面试】获取,很开心能分享给大家!我的很多文章都有分享各种架构资料,相信对于已经工作和遇到技术瓶颈或者写博客码友,在我的主页一定都有你需要的内容 。
【面试题】dubbo的工作原理,注册中心挂了可以继续通信吗?
说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程?面试官心理分析MQ、ES、Redis、Dubbo,上来先问你一些思考性的问题、原理,比如 kafka 高可用架构原理、es 分布式架构原理、redis 线程模型原理、Dubbo 工作原理;之后就是生产环境里可能会碰到的一些问题,因为每种技术引入之后生产环境都可能会碰到一些问题;再来点综合的,就是系统设计,比如让你设计一个 MQ、设计一个搜索引擎、设计一个缓存、设计一个 rpc 框架等等 。
那既然开始聊分布式系统了,自然重点先聊聊 dubbo 了,毕竟 dubbo 是目前事实上大部分公司的分布式系统的 rpc 框架标准,基于 dubbo 也可以构建一整套的微服务架构 。但是需要自己大量开发 。当然去年开始 spring cloud 非常火,现在大量的公司开始转向 spring cloud 了,spring cloud 人家毕竟是微服务架构的全家桶式的这么一个东西 。
但是因为很多公司还在用 dubbo,所以 dubbo 肯定会是目前面试的重点,何况人家 dubbo 现在重启开源社区维护了,捐献给了 apache,未来应该也还是有一定市场和地位的 。既然聊 dubbo,那肯定是先从 dubbo 原理开始聊了,你先说说 dubbo 支撑 rpc 分布式调用的架构啥的,然后说说一次 rpc 请求 dubbo 是怎么给你完成的,对吧 。
面试题剖析dubbo 工作原理第一层:service 层,接口层,给服务提供者和消费者来实现的第二层:config 层,配置层,主要是对 dubbo 进行各种配置的第三层:proxy 层,服务代理层,无论是 consumer 还是 provider,dubbo 都会给你生成代理,代理之间进行网络通信第四层:registry 层,服务注册层,负责服务的注册与发现第五层:cluster 层,集群层,封装多个服务提供者的路由以及负载均衡,将多个实例组合成一个服务第六层:monitor 层,监控层,对 rpc 接口的调用次数和调用时间进行监控第七层:protocal 层,远程调用层,封装 rpc 调用第八层:exchange 层,信息交换层,封装请求响应模式,同步转异步第九层:transport 层,网络传输层,抽象 mina 和 netty 为统一接口第十层:serialize 层,数据序列化层工作流程第一步:provider 向注册中心去注册第二步:consumer 从注册中心订阅服务,注册中心会通知 consumer 注册好的服务第三步:consumer 调用 provider第四步:consumer 和 provider 都异步通知监控中心 。

推荐阅读