摘要: 前言: 如何优化高并发服务,这里指的是qps在20万以上的在线服务,注意不是离线服务,在线服务会存在哪些挑战呢?①无法做离线缓存,所有的数据都是实时读的 ②大量的请求会打到线上服务,对于服务的响应时间要求较高,一般都是限制要求在300ms以内,如果超过这个时间那么对用户造成的体验就会急剧下降 ③数 阅读全文
posted @ 2022-01-17 02:01 Yrion 阅读(676) 评论(0) 推荐(0) 编辑
摘要: 前言:二叉树的遍历形式有很多,比如前序、中序、后序、层序遍历,在最近的一次面试中,面试官要求手写层序遍历代码(非递归的形式),由此可见遍历的重要性.本篇博客我们就来看一下二叉树的几种遍历方式.本篇博客语言均采用java实现: 目录: 一:二叉树简介 二:前序遍历 三:中序遍历 四:后序遍历 五:层序 阅读全文
posted @ 2020-12-10 23:05 Yrion 阅读(2466) 评论(4) 推荐(4) 编辑
摘要: 前言:在分布式的系统中,存在很多的节点,节点之间如何进行协作运行、高效流转、主节点挂了怎么办、如何选主、各节点之间如何保持一致,这都是不可不面对的问题,此时raft算法应运而生,专门 用来解决上述问题。对于分布式的一致性算法,著名的有paxos,zookeeper基于paxos提出了zab协议, p 阅读全文
posted @ 2020-10-31 21:47 Yrion 阅读(4155) 评论(0) 推荐(1) 编辑
摘要: 前言:jdk作为我们每天必备的调用类库,里面大量提供了基础类供我们使用.可以说离开jdk,我们的java代码寸步难行,jdk带给我们的便利可谓是不胜枚举,但同时这些方法在使用起来也存在一些坑,如果不注意就很容易掉入到陷阱里面,导致程序抛出错误。jdk中的很多方法都不会做非null判断,可能设计jdk 阅读全文
posted @ 2020-08-31 21:09 Yrion 阅读(1119) 评论(2) 推荐(3) 编辑
摘要: 前言: 首先思考一个问题:在高并发的场景中,关于数据库都有哪些优化的手段?常用的有以下的实现方法:读写分离、加缓存、主从架构集群、分库分表等,在互联网应用中,大部分都是读多写少的场景,设置两个库,主库和读库,主库的职能是负责写,从库主要是负责读,可以建立读库集群,通过读写职能在数据源上的隔离达到减少 阅读全文
posted @ 2020-07-31 12:39 Yrion 阅读(3149) 评论(1) 推荐(4) 编辑
摘要: 前言:最近在开发一个功能:动态展示的订单数量排名前10的城市,这是一个典型的Top-k问题,其中k=10,也就是说找到一个集合中的前10名。实际生活中Top-K的问题非常广泛,比如:微博热搜的前100名、抖音直播的小时榜前50名、百度热搜的前10条、博客园点赞最多的blog前10名,等等如何解决这类 阅读全文
posted @ 2020-06-30 21:13 Yrion 阅读(2400) 评论(0) 推荐(4) 编辑
摘要: 前言: 二分查找作为很常见的一种算法,基本思想是定义头和尾双指针,计算中间的index指针,每次去和数组的中间值和目标值进行比较,如果相同就直接返回,如果目标值小于中间值就将尾指针重新赋值为中间值-1,头指针不变,相当于从左边区域去找;如果目标值大于中间值就将头指针赋值为中间值+1,尾巴指针不变,相 阅读全文
posted @ 2020-05-30 02:15 Yrion 阅读(821) 评论(2) 推荐(0) 编辑
摘要: 前言 从业快4年,最近愈发感觉到算法的重要性.作为一名后端开发,在实际工作中,算法的应用其实是十分多的,比如我们熟悉的LinkedList、jdk的底层排序,算法的重要性大家都有目共睹,也成了入职大厂不可或缺的基本能力。最近就听群里的伙伴说面试字节跳动的时候要求现场写出以k个为一组反转链表,如果不做 阅读全文
posted @ 2020-04-29 13:35 Yrion 阅读(1451) 评论(0) 推荐(0) 编辑
摘要: 前言:在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究竟有什么坏处?本篇博客我们就来分析这个问题,探讨一下内部的原因。 本篇 阅读全文
posted @ 2020-03-24 22:10 Yrion 阅读(16845) 评论(18) 推荐(16) 编辑
摘要: 前言:开闭原则一直是软件开发领域中所追求的,开闭原则中的"开"是指对于组件功能的扩展是开放的,是允许对其进行功能扩展的,“闭”,是指对于原有代码的修改是封闭的,即不应该修改原有的代码。对于一个高度集成化的、成熟、稳健的系统来讲,永远不是封闭、固守的,它需要向外提供一定的可扩展的能力,外部的实现类或者 阅读全文
posted @ 2020-02-09 21:41 Yrion 阅读(2597) 评论(4) 推荐(0) 编辑