Dubbo

该死的线程池,是时候安排一下了

梦想的初衷 提交于 2020-12-03 22:44:11
前言 线程池可以说是 Java 进阶必备的知识点了,也是面试中必备的考点,可能不少人看了 这篇文章 后能对线程池工作原理说上一二,但这还远远不够,如果碰到比较有经验的面试官再继续追问,很可能会被吊打,考虑如下问题: Tomcat 的线程池和 JDK 的线程池实现有啥区别, Dubbo 中有类似 Tomcat 的线程池实现吗? 我司网关 dubbo 调用线程池曾经出现过这样的一个问题:压测时接口可以正常返回,但接口 RT 很高,假设设置的核心线程大小为 500,最大线程为 800,缓冲队列为 5000,你能从这个设置中发现出一些问题并对这些参数进行调优吗? 线程池里的线程真的有核心线程和非核心线程之分? 线程池被 shutdown 后,还能产生新的线程? 线程把任务丢给线程池后肯定就马上返回了? 线程池里的线程异常后会再次新增线程吗,如何捕获这些线程抛出的异常? 线程池的大小如何设置,如何 动态设置 线程池的参数 线程池的状态机画一下? 阿里 Java 代码规范为什么不允许使用 Executors 快速创建线程池? 使用线程池应该避免哪些问题,能否简单说下线程池的最佳实践? 如何优雅关闭线程池 如何对线程池进行监控 相信不少人看了这些问题会有些懵逼 其实这些问题的答案大多数都藏在线程池的源码里,所以深入了解线程池的源码非常重要,本章我们将会来学习一下线程池的源码,相信看完之后

太可怕了,开发5年的我与Alibaba面试官“大战”7回合,险胜拿到p7岗offer!

烂漫一生 提交于 2020-12-03 11:40:14
今年受大环境影响,整个互联网企业裁员的现象比往年严重多了,恰巧今年又是我的第一个“五年计划”截止的时间点,说什么也不能够耽搁了,所以早早准备的跳槽涨薪了。而这次的阿里之行也是路途坎坷,真的太为难我了,可以说是和面试官大战了7个回合,不过好在最后到底还是给了offer!我个人情况是5年Java后台经验,阿里定级P7的样子,下面是我的面试经历分享,希望能带来一些不一样的启发和帮助。 我与Alibaba面试官“大战”7回合,胜 Alibaba大战 第一轮 第一轮面试是电话面,以基础知识为主,前后大概2个小时左右,这个阶段我是比较紧张的。 先自我介绍,包含日常工作 多线程,ThreadLocal,问了父子线程怎么共享数据 interitableThreadLocals Lock和Sync的区别 AQS原理(执行过程源码,入队出队的细节,源码细节) CountDownLatch和CyclicBarrier的区别是什么源码级别 volatile从指令重排序,内存屏障 数据库,MySQL索引,执行计划、count1*区别、举例优化sql、MVCC和事务隔离级别的关系、间隙锁、行锁 JVM调优(可达性分析算法中根节点有哪些、cms和G1区别、怎样GC调优、怎样排查CPU彪高、内存彪高、逃逸分析) redis数据结构、跳跃表、redis qps能上多少,怎么知道的

Sentinel 集群限流设计原理

狂风中的少年 提交于 2020-12-03 07:42:51
做积极的人,越努力越幸运! 1、集群限流使用场景 首先一个服务有三个服务提供者,但这三台集群的硬件配置不一样,如图所示: 在这里插入图片描述 为了充分利用硬件的资源,诸如 Dubbo 都提供了基于权重的负载均衡机制,例如可以将8C16G的机器设置的权重是4C8G的两倍,这样充分利用硬件资源,假如现在需要引入 Sentinel 的限流机制,例如为一个 Dubbo 服务设置限流规则,这样由于三台集群分担的流量不均匀,会导致无法重复利用高配机器的资源。 假设经过压测,机器配置为C48G最高能承受的TPS为 1500,而机器配置为8C16G能承受的TPS为2800,那如果采取单机限流,其阔值只能设置为1500,因为如果超过1500,会将4C8G的机器压垮。 解决这种办法的方式就是针对整个集群进行限流,即为整个集群设置一个阔值,例如设置限流TPS为6000。 2、集群限流与单机限流的异同思考 限流的一个基本作用就是按照限流规则生成访问许可(Token),然后根据当前实时的调用信息进行判断是否可以获得许可而决定是否放行。 集群与单机限流在实时调用信息收集方面应该差别不大,都可以基于滑动窗口进行统计信息的收集。 集群与单机限流的最主要区别在与许可的生成,单机模式的许可直接在本地生成,但集群限流必须有一个统一的 Token 发放机制,以此来协调当前集群内多机调用,从而基于当前“调用总数”进行限流。

致敬最优秀的同行者们

余生颓废 提交于 2020-12-03 07:42:11
做 积 极 的 人 , 越 努 力 越 幸 运 ! 真的非常开心,『中间件兴趣圈』公众号粉丝数正式迈过1W大关,达成一个重要里程碑,笔者感慨真的不容易。 2018年10月19号通过公众号发布第一篇文章,到今天为止,公众号已经发表了145篇原创文章,坚持真的很难,但只要能坚持,就一定会有好的收获,这不,你瞧,1W个人与你一起同行,这成就不可谓不大。 在持续坚持努力下,我出版了《RocketMQ技术内幕》一书,从一家名不经传的小公司顺利跳槽到快递物流头部企业:中通快递,让我能在更高的平台上发光发热,使我深深的认识到: 越努力越幸运,唯有坚持不懈 。希望能用这句话与各位粉丝朋友共勉,相互交流,共同成长。 相信各位读者朋友们也能直观的感受到『中间件兴趣圈』主要发表的文章都比较枯燥,因为大部分都是以源码分析为主,认真读完一篇文章需要极大的耐心,我从后台的统计数据上看到,每篇文章的读完率其平均值在50%左右,这足以说明大家拥有强烈的求知欲望,这里必须有掌声,为各自点个赞吧。与各位优秀的读者同行,是我的一大荣幸,未来继续加油。 『中间件兴趣圈』的定位是记录笔者的学习历程与成长历程,同时也起到驱动笔者去学习,给自己提的要求是尽最大努力保证一周一篇原创文章。 绝不注水、绝不洗稿,这是我的初心也是底线。 『中间件兴趣圈』现阶段主要以源码分析为手段成体系剖析JAVA主流中间件

2019 新浪 java面试笔试题 (含面试题解析)

跟風遠走 提交于 2020-12-03 06:26:11
   本人5年开发经验、18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴、今日头条、新浪等公司offer,岗位是Java后端开发,因为发展原因最终选择去了新浪,入职一年时间了,也成为了面试官,之前面试了很多家公司,感觉大部分公司考察的点都差不多,趁空闲时间,将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助。    下面提的问题可以看下你自己是否能回答出来,是否做好准备了,当然面试题准备是一方面,你本身的技能掌握是一方面,本身技能不过硬也会被刷下来,下面的图是进阶体系图可以参考下,还有个架构的体系图太大了,传不上来,里面有些备注是processon画的,图片也展示不出来,只能麻烦大家去网盘获取了 <font color=red siz=12> (PS:再次编辑,感谢大家的支持,受宠若惊。私信问我要这些面试答案的,希望交流的朋友很多,但是很多不能及时看到,没办法一个个发给大家,大家注意下中间的百度网盘链接,整理成了pdf分享下给大家,也包括我之前面试准备的题跟视频,也可以进群交流,这样沟通成本少点) </font> 鼠标右键点击,新标签页中打开图片 面试流程   先说下面试流程,一般大公司都有3-4轮技术面,1轮的HR面。就新浪而言,我共经历了4轮技术面,前两轮主要是问基础和项目实现,第3轮是交叉面,两个面试官,主要是问项目实现和拓展。第4轮是部门老大面

2019 拼多多java面试笔试题 (含面试题解析)

假装没事ソ 提交于 2020-12-03 04:15:55
本人3年开发经验、18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴、今日头条、拼多多等公司offer,岗位是Java后端开发,最终选择去了拼多多。 面试了很多家公司,感觉大部分公司考察的点都差不多,所以将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助。另外,目前在拼多多也做面试官的工作,身份从求职者变为面试官,看问题的很多角度也不一样,所以下文中既有求职者的视角,也有面试官的视角 <font color=red> (PS:感谢大家的支持,问我要完整面试题的希望交流指导的太多,没办法一个个发给大家,大家看下后面链接,整理成了pdf分享下给大家 </font> 面试流程   先说下面试流程,一般大公司都有3-4轮技术面,1轮的HR面。就拼多多而言,我共经历了4轮技术面,前两轮主要是问基础和项目实现,第3轮是交叉面,两个面试官,主要是问项目实现和拓展。第4轮是部门老大面,主要就问一些架构、技术和业务的理解、个人发展比较抽象的东西了。 要注意的点 简历一到两页为最佳,将项目经历写2-3个左右就差不多了,一定要写最有亮点的项目 工作经历的起始时间要写清楚,另外大公司都有背调,不要合并或省略一些比较短的工作经历,影响的可能不只是这次面试,而是之后可能都无法进这家公司 博客没什么好文章,github没好项目就不要写在简历中了 对于面试官的问题,想清楚再回答

2015到2020JAVA架构技术演进,阿里架构师到底有多牛逼?

自作多情 提交于 2020-12-02 15:25:58
V1.0拥抱架构师 更仔细架构演进图以及更多学习资料点此免费领取! V2.0拥抱微服务 V3.0拥抱互联网实战 Spring全家桶 更仔细架构演进图以及更多学习资料点此免费领取! Spring框架/Boot框架/微服务 分布式架构 RPC调用/zookeeper/dubbo框架 高并发技术 线程并发/网络技术/缓存技术/消息队列/负载均衡 高性能存储 数据库集群/搜狗引擎/Mongo 更仔细架构演进图以及更多学习资料点此免费领取! 性能优化 SQL优化/JVM性能优化/WEB程序优化 容器化技术 Docker/K8S容器编排 DevOps Git/Maven/Jenkins 大型互联网项目实战 干货视频,高级架构师最新java、spring、Redis、JVM、分布式、高并发。里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring,MyBatis,Netty源码分析,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点高级进阶干货的免费直播讲解。 更仔细架构演进图以及更多学习资料点此免费领取! 精选JAVA 高并发分布式架构课程视频 高可用、高并发、高性能及分布式、Jvm性能调优、Spring,MyBatis,Netty源码分析,Redis,Kafka,Mysql,Zookeeper,Tomcat

当spring cloud 遇上了Dubbo,它们谁更胜一筹?

好久不见. 提交于 2020-12-02 15:21:39
目录 前言 一、spring cloud 和 Dubbo 技术上选谁呢? 选择spring cloud 选择Dubbo 小结 二、spring cloud 和 Dubbo 社区的活跃度 小结 三、spring cloud 和 Dubbo 架构完整度 小结 四、Round 4:文档质量 小结 五、但如果我选,我会用springcloud。 从公司整体规划 从程序员招聘难度 从系统结构简易程序 从性能 从开发难易度 从后续改进 从配套措施 从技术实力层面 总结 前言 简而言之,Dubbo确实类似于Spring Cloud的一个子集,Dubbo功能和文档完善,在国内有很多的成熟用户,然而鉴于Dubbo的社区现状(曾经长期停止维护,2017年7月31日团队又宣布重点维护),使用起来还是有一定的门槛。 Dubbo具有调度、发现、监控、治理等功能, 支持相当丰富的服务治理能力 。Dubbo架构下,注册中心对等集群,并会缓存服务列表已被数据库失效时继续提供发现功能,本身的服务发现结构有很强的 可用性与健壮性 ,足够支持高访问量的网站。 一、spring cloud 和 Dubbo 技术上选谁呢? 选择spring cloud 一定要选Spring Cloud全家桶:社区支持强大,更新非常快,所以开发效率高。 速度慢不是缺点,扩展性不强也不是缺点。 大/中/小型公司总是担心

拼多多内推3面(Java):B-Tree索引+AQS+GC+分布式+集群+数据拆分

霸气de小男生 提交于 2020-12-02 15:16:54
一面 osi七层网络模型,五层网络模型,每次层分别有哪些协议 死锁产生的条件, 以及如何避免死锁,银行家算法,产生死锁后如何解决 如何判断链表有环 虚拟机类加载机制,双亲委派模型,以及为什么要实现双亲委派模型 虚拟机调优参数 拆箱装箱的原理 JVM垃圾回收算法 CMS G1 hashset和hashmap的区别,haspmap的底层实现put操作,扩容机制,currenthashmap如何解决线程安全,1.7版本以及1.8版本的不同 md5加密的原理 有多少种方法可以让线程阻塞,能说多少说多少 synchronized和reetrantlock锁 AQS同步器框架,countdowmlatch,cyclebarrier,semaphore,读写锁 二面 B-Tree索引,myisam和innodb中索引的区别 BIO和NIO的应用场景 讲讲threadlocal 数据库隔离级别,每层级别分别用什么方法实现,三级封锁协议,共享锁排它锁,mvcc多版本并发控制协议,间隙锁 数据库索引?B+树?为什么要建索引?什么样的字段需要建索引,建索引的时候一般考虑什么?索引会不会使插入、删除作效率变低,怎么解决? 数据库表怎么设计的?数据库范式?设计的过程中需要注意什么? 共享锁与非共享锁、一个事务锁住了一条数据,另一个事务能查吗? Spring bean的生命周期?默认创建的模式是什么

2020双11,Dubbo3.0 在考拉的超大规模实践

左心房为你撑大大i 提交于 2020-11-30 11:57:27
很多开发者一直以来好奇:阿里自己有没有在用Dubbo,会不会用Dubbo?在刚刚结束的双11,我们了解到阿里云今年提出了“三位一体”的理念,即将“自研技术”、“开源项目”、“商业产品”形成统一的技术体系,最大化技术的价值。终于,在2020的双11,阿里巴巴经济体也用上了Dubbo!本文是阿里双十一在考拉大规模落地 Dubbo3.0 的技术分享,系统介绍了 Dubbo3.0 在性能、稳定性上对考拉业务的支撑。 HSF 是阿里内部的分布式的服务框架,作为集团中间件最重要的中间件之一,历经十多届双十一大促,接受万亿级别流量的锤炼,十分的稳定与高效。另外一方面,Dubbo 是由阿里中间件开源出来的另一个服务框架,并且在 2019 年 5 月以顶级项目身份从 Apache 毕业,坐稳国内第一开源服务框架宝座,拥有非常广泛的用户群体。 在集团业务整体上云的大背景下,首要挑战是完成 HSF 与 Dubbo 的融合,以统一的服务框架支持云上业务,同时在此基础上衍生出适应用下一代云原生的服务框架 Dubbo 3.0,最终实现自研、开源、商业三位一体的目标。今年作为 HSF&Dubbo 融合之后的 Dubbo 3.0 在集团双十一落地的第一年,在兼容性、性能、稳定性上面都面临着不少的挑战。可喜的是,在今年双十一在考拉上面大规模使用,表现稳定,为今后在集团大规模上线提供了支撑。 Dubbo 3.0