大数据
文章平均质量分 87
西蓝花MQ
喜欢快速学习并适应新环境。致力于大型应用系统建设
展开
-
延迟队列有哪些
这时可以用DelayQueue保存通知失败的请求,失效时间可以根据已通知的次数来设定(比如:2s、5s、10s、20s),这样每次从队列中take获取的就是剩余时间最短的请求,如果已重复通知次数超过一定阈值,则可以把消息抛弃。如果一条消息设置了TTL属性或者进入了设置TTL属性的队列,那么这条消息如果在TTL设置的时间内没有被消费,则会成为“死信”。TTL是RabbitMQ中一个消息或者队列的属性,表明一条消息或者该队列中的所有消息的最大存活时间,单位是毫秒。采用死信队列+TTL过期时间来实现延迟队列。原创 2024-05-15 15:12:32 · 684 阅读 · 0 评论 -
java 并发线程应用
ArrayBlockingQueue是一个有界缓存等待队列,可以指定缓存队列的大小,当正在执行的线程数等于corePoolSize时,多余的元素缓存在ArrayBlockingQueue队列中等待有空闲的线程时继续执行,当ArrayBlockingQueue已满时,加入ArrayBlockingQueue失败,会开启新的线程去执行,当线程数已经达到最大的maximumPoolSizes时,再有新的元素尝试加入ArrayBlockingQueue时会报错。IO密集型,即该任务需要大量的IO,即大量的阻塞。原创 2024-05-14 17:13:30 · 992 阅读 · 0 评论 -
排序算法的奥秘:JAVA中的揭秘与实现
选择排序(Selection Sort)是一种简单的排序算法,它通过每次选择未排序部分中的最小元素,并将其放置在已排序部分的末尾,逐步完成整个数组的排序。具体来说,选择排序从第一个元素开始,逐个找到未排序部分的最小元素,并与未排序部分的第一个元素交换位置。它从数组的第二个元素开始,将当前元素保存为key,然后将比key大的元素向后移动一个位置,直到找到key的正确位置。它通过嵌套的循环迭代,每次迭代找到未排序部分的最小元素,并与未排序部分的第一个元素交换位置。// 在未排序部分中找到最小的元素的索引。原创 2023-09-21 16:54:16 · 335 阅读 · 0 评论 -
程序员学到的方法论
意大利学者帕累托发现社会财富在人口中的分配是不平衡的,20%的人占用了80%的社会财富,而这种不平衡现象在社会中普遍存在,因此二八原则就成了这种不平衡关系的简称。在日常工作中,即便是小的事情,我们也可以按这种流程推进来培养自己做事的能力,这样在遇到复杂问题时,就能够很从容的做到抽丝剥茧,化繁为简。方法论是指导做事的基本原则,能够帮助我们快速的触及问题的核心并确定解决思路,好的方法论能让我们事半功倍,下面这几年学习到的部分方法论。当我们想清楚了了做一件事情的原因,接下来要确定的就是做什么,以及目标是什么;原创 2023-06-26 09:45:52 · 196 阅读 · 0 评论 -
java项目部署Linux服务器几种启动方式总结经验
最后在Linux项目上对项目进行操作的命令符如下: 后台暂时运行:java -jar /root/yyxx/cloud-yyxx-web-1.0-exec.jar(后台暂时运行) 后台永久运行,想要停止需杀死后台进程:nohup java -jar /root/yyxx/cloud-yyxx-web-1.0-exec.jar &() 查看jar进程:ps aux|grep cloud-yyxx-web-1.0-exec.jar 杀掉进程: kill -9 进程号。但是比较方便,快速,比较简单。原创 2023-06-17 22:37:52 · 2466 阅读 · 0 评论 -
海量数据查询如何从1000ms降到100ms?
在这里,最核心的概念是“协议”、“维度”与“指标”。例如,如果想要对某个【省份】、【城市】、【运营商】的接口【错误码】进行监控,监控目标是统计接口的【平均耗时】和【上报量】。在这里,省份、城市、运营商、错误码,这些描述监控目标属性的可枚举字段称之为“维度”,而【上报量】、【平均耗时】等依赖“聚合计算”结果的数据值,称之为“指标”。而承载这些指标和维度的数据表,叫做“协议”。多维监控对外提供 2 种 API:**维度枚举查询:**用于查询某一段时间内,一个或多个维度的排列组合以及其对应的指标值。原创 2023-06-07 10:12:26 · 58 阅读 · 0 评论