- 博客(33)
- 收藏
- 关注
原创 Redisson的trylock()与lock()区别
2、Redisson中的lock()方法是阻塞式获取分布式锁的方式。当调用lock()方法时,如果锁已经被其他线程持有,当前线程会被阻塞,直到获取到锁为止。一旦其他线程释放了锁,阻塞的线程会被唤醒,并在获取到锁之后继续执行后续代码。1、tryLock是Redisson中的一个方法,用于尝试获取分布式锁。它的作用是尝试获取锁资源,如果成功获取到锁,则返回true,如果锁已经被其他线程占用,则立即返回false。高并发,按顺序执行访问。计划任务、消费者消费。
2024-10-05 18:49:16 552
原创 idea 启动项目提示端口被占用
在开发中,idea工具偶尔会出现非人为的关闭原因,最经常的就是闪退,但是闪退后如果我们有本地项目正在运行的服务是不会停止的,会在windows后台继续跑,这时候我们重启项目就会有各种问题。项目可以启动,但是我们在debug测试接口时,会发现断点进不来,因为测试时访问到了后台的项目进程。1、首先,找到项目所使用的端口号,win+r 输入 cmd 打开命令框,输入。3、 接下来就可以打开任务管理器,招到pid为20128的进程,结束任务。4、最后,重启idea启动服务就解决了。1、项目启动后,断点调试不了。
2024-07-17 14:15:50 1428
原创 Rabbitm使用死信队列完成消息延迟发送
*** iot告警交换机*//*** iot告警队列*//*** iot告警死信交换机*//*** iot告警死信队列*//*** iot告警路由Key*//*** 定义普通交换机*/@Bean/*** 定义普通队列* 绑定死信交换机,过期、错误、拒绝的消息会发给它* 不设置路由key*/@Bean.build();/*** 定义死信交换机*/@Bean/*** 定义死信队列*/@Bean/**
2024-07-01 13:46:46 208
原创 Jrebel热部署
3、配置 http://127.0.0.1:8888/{GUID}https://www.guidgen.com/ 获取 GUID。4、激活后,Jrebel针对本项目模块进行勾选。5、如果报错,setting设置offine。2、解压后本地启动exe文件。
2024-06-24 16:30:53 304
原创 List截取子数组,多线程并发处理
30 / 3 = 10, 没达到最大线程(8个),4个核心线程,3个等待队列,3个新线程,只开启7个线程。达到最大线程(8个),4个核心线程,3个等待队列,4个新线程,剩余线程交回给主线程处理。2,4个核心线程,3个等待队列,1个新线程,只开启5个线程。30 / 5 = 6,4个核心线程,2个等待队列,不需要开线程。3、等待队列满了(7个),创建新线程,可以创建4个(8-4)2、核心线程不够的话,存到等待队列,可以放3个。情况四:按照5截取数组,6、7、8截取一样。情况一:模拟不截取数组、按照2截取数组。
2024-06-08 22:33:59 192
原创 Springboot 中如何使用 MQTT?
在此类中,可以使用MqttClient来发布MQTT消息。在此示例中,使用了TCP协议连接本地主机的MQTT代理,并指定了客户端ID、主题和连接选项。链接:https://www.zhihu.com/question/590407237/answer/3005723521。在此示例中,使用MqttClient.publish()方法发布MQTT消息。在此类中,可以处理收到的MQTT消息。在此示例中,实现了MqttCallback接口,并在其中处理连接断开、收到消息和消息发送完成的情况。
2024-05-29 15:46:09 507 1
原创 Gateway自定义路由配置
http://localhost:5153/cl/console/api/base/sys/queryEnum 跳转到 http://localhost:9200/base/sys/queryEnum。http://gateway:5153**/cl/thirdsys/api**/xxxxx 跳转到 http://user-service/xxxxxxxx。:删掉路径中的3部分,即。
2024-05-25 04:08:24 234
原创 Mybatis-plus常见搜索条件查询
and ( a = x or a = xx or a = xxx) 或者 and a in (x, xx, xxx)3、年龄段查询,注意计算年龄跟当前年月日对比,是否要加1或者减1。2、查询某个字段在某个集合中的值,二选一。1、关键字在多个字段查询。
2024-05-25 03:52:19 487
原创 springboot File类型文件转为MultiFile,不需要额外引入test包
【代码】springboot File类型文件转为MultiFile,不需要额外引入test包。
2024-05-13 18:22:10 431
原创 策略模式自动获取不同实现类进行功能执行
获取IStrategy所有实现类,之后添加新的实现类,不需要做额外的代码增加。3、setApplicationContext获取所有实现类,注入到map中。2、实现ApplicationContextAware。1、添加@Component,交给spring管理。
2024-05-07 12:17:15 330
原创 模拟令牌桶,匀速生成令牌
args) ,新写run()方法。1、@Component,交给spring管理。,启动线程进行,匀速生成tokens并赋值。int rate = 5,令牌因子。
2024-04-18 12:38:49 116
原创 springboot跨域,拦截器失效,过滤器有效
系统添加权限认证,拦截器之前就返回跨域,可能导致方式一和方式二失效;选择方式三,全局过滤器在权限认证之前执行,就不会返回跨域。解决跨域问题有三种方式。
2024-04-09 11:27:50 315
原创 Linux 之 /dev/null 用法
2: 1 表示 stdout 标准输出;系统默认值是 1, 所以">/dev/null"等同于 “1>/dev/null”原文链接:https://blog.csdn.net/wan212000/article/details/134181381。的意思, 2>&1, 表示 2 的输出重定向等同于 1。输出到/dev/null, 即不显示输出信息。输出到/dev/null, 即不显示输出信息。1: /dev/null 代表空设备文件。3: 2 表示 stderr 标准错误。
2024-01-29 16:01:50 201
原创 Bash技巧:介绍 $0、$1、$2、$#、$@、$*、$? 的含义
0 对应 “./test.sh” 这个值。如果执行的是 ./work/test.sh, 则对应 ./work/test.sh 这个值,而不是只返回文件名本身的部分。$1 会获取到 a,即 $1 对应传给脚本的第一个参数。$2 会获取到 b,即 $2 对应传给脚本的第二个参数。$3 会获取到 c,即 $3 对应传给脚本的第三个参数。$4、$5 等参数的含义依此类推。$# 会获取到 3,对应传入脚本的参数个数,统计的参数不包括 $0。
2024-01-29 14:39:49 2209
原创 各种数据类型占用内存大小,以及字、字节、位
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。short int : 2个字节int: 4个字节。unsigned long: 8个字节各种数据类型。unsigned long: 4个字节。unsigned long: 4个字节。unsigned int : 4个字节。unsigned int : 4个字节。long long: 8个字节。long long: 8个字节。long long: 8个字节。long: 4个字节。
2024-01-22 19:01:05 1954
原创 缓存击穿、缓存穿透、缓存雪崩概念及解决措施
缓存穿透:redis没有某个key值,直接访问数据库。措施:缓存空值,直接返回;缓存雪崩:redis大批量key失效,直接访问数据库。措施:分散key过期时间。缓存击穿:redis某个key失效,直接访问数据库。
2024-01-22 13:15:46 396
原创 RabbitMQ如何防止消息丢失及重复消费
1、生产者开启事务机制、发布确认机制,等待返回。2、消费者生成唯一id,消费成功存库,保证幂等。1、生产者生成唯一id,保证不重复发送到队列。3、消费者开启手动ack(消息应答机制)2、mq队列持久化、消息持久化。
2024-01-22 13:14:14 526
原创 linux vi快捷键
linux vi 快捷键使用 1、vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(commandmode)插入模式(Insertmode)底行模式(lastlinemode) 1)命令行模式commandmode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insertmode下,或者到lastlinemode。 2)插入模
2016-07-12 08:00:46 1043
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人