众所周知,商城、RPC、秒杀、论坛、外卖、点评等项目早早就烂大街了,翻开同学的简历一看10个里面有9个是这些,翻遍全网再很难找到一个既有含金量又能看得懂的项目,针对此,我研发了这样一个可以快速上手又具有较多技术点的短链项目: 高性能短链系统EZLink! 技术栈如下: DDD架构 Reactor模型:SpringWebFlux 雪花算法 分布式锁 责任链模式 TransmittableThreadLocal 消息队列:Kafka 定时任务:SpringScheduled 缓存:Redis 布隆过滤器:BloomFilter Dubbo 代码架构如下图所示: Github地址:https...

  JLLTYWSDzQWX   12天前   22   0   0 Java

查找 假设有如下这样一个有序链表: 想要查找24、43、59,按照顺序遍历,分别需要比较的次数为2、4、6 目前查找的时间复杂度是O(N),如何提高查找效率? 很容易想到二分查找,将查找的时间复杂度降到O(LogN) 具体来说,我们把链表中的一些节点提取出来,作为索引,类似于二叉搜索树,得到如下结构: 这里我们把10、30、50、80提取出来作为一级索引,这样搜索的时候就可以使用二分查找来减少比较次数了。 我们还可以再从一级索引提取一些元素出来,作为二级索引,变成如下结构: 比如如果想要查找59,那么搜索路径就是下面这样的: 回顾下链表的定义: classListNode{ priva...

  JLLTYWSDzQWX   2023年11月01日   40   0   0 Java

2022壬寅年,病毒和战争齐飞,流言和混乱四起。2023届秋招的残酷已不需要再多说,各大平台校招社招一片哀嚎,如果说往年的各种帖子是在贩卖焦虑,今年就是实打实的就业寒冬。 先来看段分析,来自阮一峰大佬: 因此我猜想,马斯克决定裁一半人,是参考了高速增长结束前的员工规模。这也意味着,即使推特少了一半员工,肯定还能正常运作,因为以前就是这么多人。 如果再往前推,2010年初,推特只有130个员工,活跃用户是3000万。现在,用户数是那时的十多倍,而130个员工的十多倍,正好接近7500人裁员75%。这是巧合吗? 事实上,即使裁员75%,跟其他一些公司相比,推特的员工还是偏多的。一个极端的例子是,...

  JLLTYWSDzQWX   2023年11月01日   162   0   0 求职面试

CPU全称CentralProcessingUnit,中央处理器,计算机的大脑,长这个样子: CPU通过一个插槽安装在主板上,这个插槽也叫做CPUSocket,它长这个样子: 而我们说的多核CPU,一个CPU有几个核,这个核就是Core 其实在很久之前是没有Core的概念的,一个CPU就是一个完整的物理处理单元,之后由于多核技术的发展,CPU的概念转变为了一个容器(container),而Core则变成了真正的物理处理单元。 一个CPU中可以有多个Core,各个Core之间相互独立且可以并行执行 所以你说一个多核CPU支不支持多进程/线程并行? 当然是可以的,进程具体是由Core来执行的...

  JLLTYWSDzQWX   2023年11月01日   43   0   0 求职面试

首先来看CPU和GPU的百科解释: CPU(CentralProcessingUnit,中央处理器):功能主要是解释计算机指令以及处理计算机软件中的数据 GPU(GraphicsProcessingUnit,图形处理器;又称显示核心、显卡、视觉处理器、显示芯片或绘图芯片):GPU不同于传统的CPU,如Inteli5或i7处理器,其内核数量较少,专为通用计算而设计。相反,GPU是一种特殊类型的处理器,具有数百或数千个内核,经过优化,可并行运行大量计算。虽然GPU在游戏中以3D渲染而闻名,但它们对运行分析、深度学习和机器学习算法尤其有用。GPU允许某些计算比传统CPU上运行相同的计算速度快10倍...

  JLLTYWSDzQWX   2023年11月01日   20   0   0 求职面试

什么是死锁(Deadlock) 死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象。若无外力作用,它们都将无法推进下去。 产生死锁的四个必要条件得烂熟于心: 互斥条件:进程要求对所分配的资源进行排他性控制,即在一段时间内某资源仅为一个进程所占用。此时若有其他进程请求该资源,则请求进程只能等待。 不剥夺条件:进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能由获得该资源的进程自己来释放。 请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源已被其他进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。 循环等待条件:存在...

  JLLTYWSDzQWX   2023年11月01日   43   0   0 求职面试

引言 由于HTTP协议是无状态的,完成操作关闭浏览器后,客户端和服务端的连接就断开了,所以我们必须要有一种机制来保证客户端和服务端之间会话的连续性,也称为认证,最常见的应用场景就是保持用户的登录态。 最基本的认证方式,就是使用Sesson-Cookie。 30s图解Sesson-Cookie认证 以保持用户登录态为例,Sesson-Cookie认证的具体步骤如下: 1)客户端(浏览器):向服务器发送登录信息(用户名和密码)来请求登录校验; 2)服务端:验证登录信息,验证通过后服务器(比如Tomcat)会自动为此次请求开辟一块内存空间(一个Session对象),可以手动将用户信息(比如登录保持...

  JLLTYWSDzQWX   2023年11月01日   53   0   0 求职面试

为什么要使用消息队列,六个字总结:解耦、异步、消峰 1)解耦 传统模式下系统间的耦合性太强。怎么说呢,举个例子:系统A通过接口调用发送数据到B、C、D三个系统,如果将来E系统接入或者B系统不需要接入了,那么系统A还需要修改代码,非常麻烦。 如果系统A产生了一条比较关键的数据,那么它就要时时刻刻考虑B、C、D、E四个系统如果挂了该咋办?这条数据它们是否都收到了?显然,系统A跟其它系统严重耦合。 而如果我们将数据(消息)写入消息队列,需要消息的系统直接自己从消息队列中消费。这样下来,系统A就不需要去考虑要给谁发送数据,不需要去维护这个代码,也不需要考虑其他系统是否调用成功、失败超时等情况,反正我...

  JLLTYWSDzQWX   2023年11月01日   22   0   0 求职面试

引言 前文介绍了Session-Cookie的认证过程,简单回顾下基本步骤: 客户端(浏览器)向服务器发送用户名和密码 服务器验证通过后,创建Session对象,在Session中保存该用户相关的数据,比如用户角色、登录时间等等 服务器向用户返回这个Session对象的唯一标识SessionId,并写入客户端的Cookie 客户端随后的每一次请求,都会通过Cookie,将SessionId传回服务器 服务器收到SessionId,并据此找到Session对象,由此获取到用户信息 这种方法的缺点就是分布式集群情况下无法保证每台服务器都拥有相同的Session,上篇文章也简单介绍了几种Sess...

  JLLTYWSDzQWX   2023年11月01日   30   0   0 求职面试
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~