这个用户很懒,还没有个人简介
私信
主帖 62
回帖
视频
提问
回答
资源
专栏
最近创建maven项目的时候一直卡在loadingarchetpelist,一直没有反应。最开始以为是VPN的问题,把VPN关了之后还是没有效果,然后又尝试切换WIFI,发现还是没有用,这样的话暂时排除了网络问题。然后。。。解决方案一然后我就重启了IDEA,发现还是没有什么作用,依然如此。没辙,继续尝试搜索解决方案。解决方案二于是,我又找到了网上的解决方案,他们给的方案有两个:选择自己的JDK版本或者InternalJRE,不过我发现我这里没有I...
2022-06-20 17:43:36 230浏览 0点赞 0回复 0收藏
某年某月的某一天,就像一张破碎的脸。。。错了,重来。某天,忽然发现大量的告警,经过多番调查研究考察(此处省略3000字),发现是由于Eureka服务下线太慢,而仍然有大量的请求打进来导致的报错。于是,又经过了大量详细周密的考察和研究,终于找到了问题并且解决了(此处省略5000字)。全文完。......好了,那是不可能的啦,怎么说也要意思一下写个300字凑个原创啊。为啥服务都下线了还会有那么多的请求一直进来呢?呐,我们...
2022-06-20 17:43:10 143浏览 0点赞 0回复 0收藏
对于Java部分的面试来说,突然想到并发这一块的内容是不太完整的,这篇文章会通篇把多线程和并发都大致阐述一遍,至少能够达到了解原理和使用的目的,内容会比较多,从最基本的线程到我们常用的类会统一说一遍,慢慢看。并发编程进程&线程对于基本的概念,大家应该都很熟悉了,进程是资源分配的单位,线程是CPU调度的单位,线程是进程中的一个实体。对于我们的Java程序来说,天生就是多线程的,我们通过main方法启动,就是启动...
2022-06-13 17:42:11 224浏览 0点赞 0回复 0收藏
读写锁读写锁,也可以称作共享锁,区别于独占锁,共享锁则可以允许多个线程同时持有,如ReentrantReadWriteLock允许多线程并发读,要简单概括就是:读读不互斥,读写互斥,写写互斥。ReentrantReadWriteLock通过阅读源码发现它内部维护了两个锁:读锁和写锁。privatefinalReentrantReadWriteLock.ReadLockreaderLock;privatefinalReentrantReadWriteLock.WriteLockwriterLock;本质上,不管是ReentrantLock还是ReentrantReadWrit...
2022-06-13 17:42:00 192浏览 0点赞 0回复 0收藏
引用类型像AtomicInteger那种,只能原子更新一个变量,如果需要同时更新多个变量,就需要使用我们的引用类型的原子类,针对引用类型的原子操作提供了3个。AtomicReference:针对引用类型的原子操作。AtomicMarkableReference:针对带有标记位的引用类型的原子操作。AtomicStampedReference:针对带有标记位的引用类型的原子操作。AtomicMarkableReference和AtomicStampedReference非常类似,他们是为了解决CAS中的ABA的问题(别...
2022-06-13 17:41:51 188浏览 0点赞 0回复 0收藏
CyclicBarrierCyclicBarrier叫做回环屏障,它的作用是让一组线程全部达到一个状态之后再全部同时执行,他和CountDownLatch主要区别在于,CountDownLatch的计数器只能用一次,而CyclicBarrier的计数器状态则是可以一直重用的。我们可以使用CyclicBarrier一样实现上面的需求。publicclassCyclicBarrierTest{publicstaticvoidmain(String[]args)throwsException{ExecutorServiceexecutorServiceExecutors.newFixedThreadPool(10);C...
2022-06-13 17:41:39 266浏览 0点赞 0回复 0收藏
ForkJoinForkJoin是一个并行执行任务的框架,利用的分而治之的思想。Fork是把一个大的任务拆分成若干个小任务并行执行,Join则是合并拆分的子任务的结果集,最终计算出大任务的结果。所以整个ForkJoin的流程可以认为就是两步:Fork拆分任务,直到拆分到最小粒度不可拆分为止Join计算结果,把每个子任务的结果进行合并fork:join这里我们需要介绍一下主要的几个类:ForkJoinTask:就是我们的分治任务的抽象类RecursiveTask:继承...
2022-06-13 17:41:26 194浏览 0点赞 0回复 0收藏
提交任务重点说一下几个方法:submit(Runnabletask,Tresult):可以用于主线程和子线程之间的通信,数据共享。submit(Runnabletask):返回null,相当于调用submit(Runnabletask,null)。invokeAll(Collection<extendsCallable>tasks):批量提交任务,阻塞等待所有任务执行完成之后返回,带超时时间的则是在超时之后返回,并且取消没有执行完成的任务。invokeAny(Collection<extendsCallable>tasks):批量提交任务,只要一个任务有...
2022-06-13 17:41:06 195浏览 0点赞 0回复 0收藏
publicstaticvoidmain(String[]args)throwsException{testInvokeAny();testCompletionService();}privatestaticvoidtestCompletionService(){CompletionService<String>completionServicenewExecutorCompletionService(executorService);List<Future>taskListnewLinkedList<>();for(inti0;i<TOTAL;i++){taskList.add(completionService.submit(newTestTask(i)));}Stringvaluenull;try{for(inti0;i<TOTAL;i++){valuecompletionSe...
2022-06-13 17:40:44 286浏览 0点赞 0回复 0收藏
阻塞队列并发编程中,队列是其中不可缺少的一环,其实前面在说到线程池的时候,就已经提及到了阻塞队列了,这里我们要一起看看JUC包下提供的这些队列。阻塞队列阻塞队列中的阻塞包含两层意思:插入的时候,如果阻塞队列满,插入元素阻塞删除查询的时候,如果阻塞队列空,删除查询元素阻塞下面列出队列的一些插入和删除元素的方法,一个个来说:add:向队列尾部插入元素,插入成功返回true,队列满则抛出IllegalStateException("...
2022-06-13 17:40:29 204浏览 0点赞 0回复 0收藏
publicvoidput(Ee){offer(e);neverneedtoblock}publicbooleanoffer(Ee){if(enull)thrownewNullPointerException();finalReentrantLocklockthis.lock;lock.lock();intn,cap;Object[]array;while((nsize)>(cap(arrayqueue).length))tryGrow(array,cap);try{Comparator<superE>cmpcomparator;if(cmpnull)siftUpComparable(n,e,array);elsesiftUpUsingComparator(n,e,array,cmp);sizen+1;notEmpty.signal();}finally{lock.unlock();...
2022-06-13 17:40:21 203浏览 0点赞 0回复 0收藏
刚看到新闻,IDEA2022最新的EAP体验版本更新了最新的UI,用户需要自己去申请体验资格,看着非常帅,想白嫖一个皮肤。申请等了半天还没有看到邮件回复,好在这届网友比较给力,找了半天,总算找到一个办法可以直接体验。直接去搜索IDEAEAP版本下载,就可以下载到最新的体验版IDEA了,其他版本的不行,我试过了,至于为啥不行,后面说。下载安装好之后,双击shift搜索registry。之后找到这个配置,ide.experimental.ui,把他勾选...
2022-06-13 17:39:51 348浏览 0点赞 0回复 0收藏
最近看了下关于分布式限流的部分,看到Sentinel的分布式限流,也就是集群限流的部分,想搭个环境看看,结果发现网上关于这方面的内容基本可以说没有,你甚至很难跑起来他的demo,就算能跑起来,估计也得自己研究半天,麻烦的要死。我猜测很重要的原因可能就是Sentinel关于这块做的并不完善,而且从官方的Issue中能看出来,其实官方对于这块后续并没有计划去做的更好。那么废话不多说,在此之前,肯定要先说下关于Sentinel集群限...
2022-06-13 17:38:59 1157浏览 0点赞 0回复 0收藏
实现InitFunc接口,重写init方法,代码直接贴出来,这里整体依赖的是Apollo的配置方式,注释的部分是我在测试的时候写死代码的配置方式,也是可以用的。publicclassDemoClusterInitFuncimplementsInitFunc{privatefinalStringnamespace"application";privatefinalStringruleKey"demosentinel";privatefinalStringruleServerKey"democluster";privatefinalStringdefaultRuleValue"[]";Overridepublicvoidinit()throwsException{...
2022-06-13 17:37:51 502浏览 0点赞 0回复 0收藏
因为有流量之后控制台才能看到限流的情况,所以用官方给的限流测试代码修改一下,放到Springboot启动类中,触发限流规则的初始化。SpringBootApplicationpublicclassDemoApplication{publicstaticvoidmain(String[]args){SpringApplication.run(DemoApplication.class,args);newFlowQpsDemo();}}测试限流代码:publicclassFlowQpsDemo{privatestaticfinalStringKEY"testres";privatestaticAtomicIntegerpassnewAtomicInteger();...
2022-06-13 17:37:42 533浏览 0点赞 0回复 0收藏
填充令牌的逻辑如下:拿到当前的时间,然后去掉毫秒数,得到的就是秒级时间判断时间小于这里就是为了控制每秒丢一次令牌然后就是coolDownTokens去计算我们的冷启动预热是怎么计算填充令牌的后面计算当前剩下的令牌数这个就不说了,减去上一次消耗的就是桶里剩下的令牌protectedvoidsyncToken(longpassQps){longcurrentTimeTimeUtil.currentTimeMillis();去掉当前时间的毫秒currentTimecurrentTimecurrentTime%1000;longoldLastF...
2022-06-10 16:03:51 283浏览 0点赞 0回复 0收藏
搞一张表说明一下,user表有4个字段,id是主键索引,name是唯一索引,age是普通索引,city没有索引,然后插入一些测试数据,下面区分一下几种情况来说明是怎么加NextKeyLock的,然后就知道为啥会没有幻读的问题了。没有索引更新语句updateusersetcity'nanjing'wherecity'wuhan'会发生什么?因为city是没有索引的,所以存储引擎只能给所有的记录都加上锁,然后把数据都返回给Server层,然后Server层把city改成nanjing,再更新数...
2022-06-10 16:02:12 182浏览 0点赞 0回复 0收藏
前面我写了很多Mysql相关的知识点,到这一篇稍微可以串一下了,从SQL执行流程、MVCC到锁,很多时候可能觉得对于间隙锁和NextKeyLock好像已经理解了,但是好像又觉得理解差那么一点意思,这篇文章从头来梳理一下概念,明确一下这些知识。锁首先,对于Mysql来说实现了两种行级锁:共享锁:允许事务读一行数据,一般记为S,也称为读锁排他锁:允许事务删除或者更新一行数据,一般记为X,也称为写锁关于读写锁的互斥性,应该都很清...
2022-06-10 16:02:04 252浏览 0点赞 0回复 0收藏
privateintcalculateTimeIdx(ValidlongtimeMillis){longtimeIdtimeMilliswindowLengthInMs;Calculatecurrentindexsowecanmapthetimestamptotheleaparray.return(int)(timeId%array.length());}protectedlongcalculateWindowStart(ValidlongtimeMillis){returntimeMillistimeMillis%windowLengthInMs;}publicWindowWrap<T>currentWindow(longtimeMillis){当前时间如果小于0,返回空if(timeMillis<0){returnnull;}计算时间窗口的...
2022-06-10 16:01:48 253浏览 0点赞 0回复 0收藏
限流作为现在微服务中常见的稳定性措施,在面试中肯定也是经常会被问到的,我在面试的时候也经常喜欢问一下你对限流算法知道哪一些?有看过源码吗?实现原理是什么?第一部分先讲讲限流算法,最后再讲讲源码的实现原理。限流算法关于限流的算法大体上可以分为四类:固定窗口计数器、滑动窗口计数器、漏桶(也有称漏斗,英文Leakybucket)、令牌桶(英文Tokenbucket)。固定窗口固定窗口,相比其他的限流算法,这应该是最简单的一种...
2022-06-10 16:01:39 224浏览 0点赞 0回复 0收藏
获得成就
已积累 3161 人气
获得 0 个点赞
获得 0 次收藏