邮件发送兜底邮箱策略 - SMTPSendFailedException: 421 4.4.5 HL:ICC 邮件发送失败重试机制应用
摘要:邮件发送兜底邮箱策略 - SMTPSendFailedException: 421 4.4.5 HL:ICC 项目测试和生产环境使用的都是163企业邮箱发送,如果测试和生产定时任务在同一时间会产生如上163的提示报错。并且增加了重试机制,邮件发送失败后,重试2次,间隔30秒。服务邮件发送服务优化-增
阅读全文
posted @
2024-11-28 19:07
oktokeep
阅读(170)
推荐(0)
线上问题排查方法
摘要:线上问题排查方法 1 OOM问题 1.1 堆内存OOM 1.2 栈内存OOM 1.3 栈内存溢出 1.4 GC OOM 1.5 元空间OOM2 CPU100%问题3 接口超时问题4 索引失效问题5 死锁问题6 磁盘问题7 MQ消息积压问题8 调用接口报错 8.1 返回401 8.2 返回403 8.
阅读全文
posted @
2024-11-28 19:04
oktokeep
阅读(67)
推荐(0)
线程和线程池原理及demo演示
摘要:线程和线程池原理及demo演示 创建一个线程有两种方式:1.继承Thread类2.实现Runnable接口 但也带来了下面的问题:创建和销毁一个线程,都是比较耗时,频繁的创建和销毁线程,非常影响系统的性能。无限制的创建线程,会导致内存不足。有新任务过来时,必须要先创建好线程才能执行,不能直接复用线程
阅读全文
posted @
2024-11-28 18:50
oktokeep
阅读(64)
推荐(0)
模板化-上线文件更新
摘要:考虑上线前后存在时间差,配置和代码的时间差。 【关键】1.先执行dms,sql 然后刷新上线配置服务。可以确保老的配置不影响。同时新的服务一旦上线,就可以使用新的配置了。2.apollo的两个binlog配置已经加上过滤。 线上执行数据库表的更新binlog,需要屏蔽掉,线上数据的大批量同时触发,会
阅读全文
posted @
2024-11-28 18:48
oktokeep
阅读(19)
推荐(0)
日期字符格式yyyyMMddHHmmss转换字符串或LocalDateTime对象
摘要:日期字符格式yyyyMMddHHmmss转换字符串或LocalDateTime对象 字符串yyyyMMddHHmmss转换字符串 格式 public static String stringToDateStringSimpleV2(String str) { //使用新的方式转换时间 LocalDa
阅读全文
posted @
2024-11-28 18:47
oktokeep
阅读(227)
推荐(0)
总费用分摊思路或收款补付的总金额分摊补付记录的支付状态思路
摘要:总费用分摊思路或收款补付的总金额分摊补付记录的支付状态思路 1.考虑到多次修改多次需要补付的情况,需要根据总金额来判断,记录数倒序排序,根据金额来截取。最后一条的结果为0,如果金额不为0,则不返回该清单列表。2.修改订单操作,先报价,提示报价信息,然后修改。如果直接修改,则跳过了报价接口的调用。但是
阅读全文
posted @
2024-11-28 18:45
oktokeep
阅读(32)
推荐(0)
接口推送方案及接口超时问题解决
摘要:接口推送方案及接口超时问题解决 报错信息:I/O error on POST request for "http://IP:端口/api接口名称": Read timed out; nested exception is java.net.SocketTimeoutException: Read t
阅读全文
posted @
2024-11-28 18:44
oktokeep
阅读(249)
推荐(0)
计算一周里面的星期几和计算redis截止当天24点的过期时间计算
摘要:计算一周里面的星期几和计算redis截止当天24点的过期时间计算 public class CalcTime { public static void main(String[] args) { Calendar midnight = Calendar.getInstance(); // 在当前日期
阅读全文
posted @
2024-11-28 18:41
oktokeep
阅读(26)
推荐(0)
高德地图返回报错: USER DAILY QUERY OVER LIMIT
摘要:高德地图返回报错: USER DAILY QUERY OVER LIMIT 1.接口:文本搜索接口 https://restapi.amap.com/v3/place/text?s=rsv3&children=&key=优化方法:2.前端App是输入联想搜索,每输入一个汉字或字母都会触发接口调用。可
阅读全文
posted @
2024-11-28 18:40
oktokeep
阅读(2078)
推荐(0)
服务重启了,如何保证线程池中的数据不丢失方案 - 提前做持久化
摘要:服务重启了,如何保证线程池中的数据不丢失方案 方案:提前做持久化 1.用户请求过来之后,先处理业务逻辑1,紧接着向DB中写入一条任务数据,状态是:待执行。2.然后将查出的任务提交到线程池中,由它处理业务逻辑2。3.处理成功之后,修改任务的待执行状态为:已执行。 需要注意的是:业务逻辑2的处理过程,要
阅读全文
posted @
2024-11-28 18:39
oktokeep
阅读(80)
推荐(0)
分布式ID设计方案
摘要:分布式ID设计方案 package com.example.core.mydemo.thread; import java.util.UUID; public class IDTest { public static void main(String[] args) { String uuid =
阅读全文
posted @
2024-11-27 22:23
oktokeep
阅读(34)
推荐(0)
编辑接口设计及微服务内部接口调用方式,feign接口调用
摘要:编辑接口设计及微服务内部接口调用方式,feign接口调用 1.根据ID新增修改接口根据ID来区分,有值则认为是修改,否则是新增。 新增接口 /add 基本原则:编辑修改接口是基于ID来修改操作。 2.改成ip方式,而不是网关,否则报错:网关登录失效 内部服务之间的接口调用ip:端口方式,而不是网关的
阅读全文
posted @
2024-11-27 22:21
oktokeep
阅读(78)
推荐(0)
RestTemplate exchange GET POST请求传参数DEMO
摘要:RestTemplate exchange GET POST请求传参数DEMO link: Illegal character ((CTRL-CHAR, code 31))问题排查 gzip接口返回 RestTemplate GET POST请求https://www.cnblogs.com/okt
阅读全文
posted @
2024-11-27 22:18
oktokeep
阅读(201)
推荐(0)
redis锁和等待锁随机毫秒数解决程序调用方控制执行的先后顺序,避免并发操作造成的数据不一致
摘要:redis锁和等待锁随机毫秒数解决程序调用方控制执行的先后顺序,避免并发操作造成的数据不一致 现象:向第三方服务调用接口,比如更换商品换货,需要先取消,然后再新增操作。同时可能存在修改并发操作(同时操作换货和修改操作),在取消和新增的间隙中做了修改操作,引起脏数据等数据不一致的问题。导致修改的数据,
阅读全文
posted @
2024-11-27 22:15
oktokeep
阅读(47)
推荐(0)
redis锁等待随机毫秒数拦截和程序自动过期双重机制
摘要:redis锁等待随机毫秒数拦截和程序自动过期双重机制 上一个操作加了锁,需要等待上一个操作执行完毕之后,才允许当前操作执行,所以当前操作需要执行锁等待处理。 package com.example.core.mydemo.javaDemo; import java.time.LocalDateTim
阅读全文
posted @
2024-11-27 22:13
oktokeep
阅读(31)
推荐(0)
RabbitMq队列名称的理解
摘要:RabbitMq队列名称的理解队列名称在不同的微服务中,需要定义不同的队列名称,否则接收消息的时候冲突,要么A接收,要么B接收,而不是A,B都接收。队列名称的命令:可以考虑业务线,服务名称,模块名称,功能名称,其他具体含义,最后以queue结尾 //DEMO @RabbitListener(bind
阅读全文
posted @
2024-11-27 22:11
oktokeep
阅读(54)
推荐(0)
rabbitmq队列清理Purge
摘要:rabbitmq队列清理Purge 如果队列拥塞,紧急情况下,为恢复业务,不得不进行队列清理(需要确认清楚,数据丢失的后果是你能承受的). 办法:管理端操作在web管理端可以进行操作,选择到要操作的队列,下拉里面有一个Purge(不要选到delete)
阅读全文
posted @
2024-11-26 18:49
oktokeep
阅读(340)
推荐(0)
rabbitmq MessageConverter消息接收异常 一直unacked 解决
摘要:rabbitmq MessageConverter消息接收异常 一直unacked 解决 rabbitmq: host: 127.0.0.1 port: 5672 username: guest password: guest virtual-host: / listener: simple: co
阅读全文
posted @
2024-11-26 18:45
oktokeep
阅读(920)
推荐(0)
MySQL中使用EXISTS替代IN是一种优化查询的方法
摘要:MySQL中使用EXISTS替代IN是一种优化查询的方法 #不能使用in关键字,索引无效 type=ALL MySQL中使用EXISTS替代IN是一种优化查询的方法,它可以避免在子查询中进行全表查询,从而提高查询效率。假设有两张表,一张是employees(员工表),一张是departments(部
阅读全文
posted @
2024-11-26 18:44
oktokeep
阅读(716)
推荐(0)
mysql删除主键和删除索引(含删除unique索引)
摘要:mysql删除主键和删除索引(含删除unique索引) ##删除表 DROP TABLE config_back; ##删除主键 ALTER TABLE config_back DROP PRIMARY KEY; 错误代码: 1075 Incorrect table definition; ther
阅读全文
posted @
2024-11-26 18:39
oktokeep
阅读(965)
推荐(0)
mysql计算两个日期之间相差小时数
摘要:mysql计算两个日期之间相差小时数 1.在MySQL中,可以使用TIMESTAMPDIFF函数来计算两个日期之间相差的小时数。以下是一个示例代码: SELECT TIMESTAMPDIFF(HOUR, '2023-01-01 00:00:00', '2023-01-01 11:00:00') AS
阅读全文
posted @
2024-11-26 18:35
oktokeep
阅读(582)
推荐(0)
Mysql的聚合函数的详细使用方法
摘要:Mysql的聚合函数的详细使用方法 CREATE TABLE sales ( sale_id INT AUTO_INCREMENT PRIMARY KEY, sale_date DATE, salesperson VARCHAR(50), product VARCHAR(50), amount DE
阅读全文
posted @
2024-11-26 18:34
oktokeep
阅读(54)
推荐(0)
MySQL 临时表
摘要:MySQL 临时表 MySQL 临时表是一种特殊类型的表,它只在当前会话(session)中存在,并且会在会话结束时自动消失。临时表在多个会话中不可见,也不会在数据库中持久存储。 创建临时表的语法如下: CREATE TEMPORARY TABLE temp_table_name ( column1
阅读全文
posted @
2024-11-26 18:33
oktokeep
阅读(36)
推荐(0)
mysql utf8mb4_general_ci 不区分大小写
摘要:mysql utf8mb4_general_ci 不区分大小写 CREATE TABLE `brand` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT 'ID', `name` VARCHAR(30) NOT NULL COMMENT '品牌名称', `
阅读全文
posted @
2024-11-22 18:53
oktokeep
阅读(323)
推荐(0)
mysql Specified key was too long; max key length is 767 bytes
摘要:mysql Specified key was too long; max key length is 767 bytes <w>查询:ALTER TABLE `order_test_code` MODIFY COLUMN `out_order_no` VARCHAR(200) DEFAULT NU
阅读全文
posted @
2024-11-22 18:52
oktokeep
阅读(410)
推荐(0)
mysql case多条件比较
摘要:mysql case多条件比较 ##正确写法 then (100-tt.fineAmt) 也可以写表达式 SELECT order_no, CASE WHEN (days >= 1 AND days < 10) THEN '0' WHEN (days >= 10 AND days < 20) THE
阅读全文
posted @
2024-11-22 18:50
oktokeep
阅读(44)
推荐(0)
mybatis注解绑定参数和CDATA符号无需再转义
摘要:mybatis注解绑定参数和CDATA符号无需再转义 1.需要使用注解 Caused by: org.apache.ibatis.binding.BindingException: Parameter 'startTime' not found. Available parameters are [
阅读全文
posted @
2024-11-22 18:47
oktokeep
阅读(65)
推荐(0)
linux命令 echo 大文件名称,清空文件内容,释放磁盘空间
摘要:linux命令 echo 大文件名称,清空文件内容,释放磁盘空间 echo > 1.log linux命令echo > 文件名称在Linux中,echo 命令用于向标准输出(通常是终端/屏幕)输出文本,而重定向符号 > 用于将 echo 的输出写入文件,如果文件不存在则创建文件。如果文件已存在,则默
阅读全文
posted @
2024-11-22 18:45
oktokeep
阅读(533)
推荐(0)
Java旋转算法Collections.rotate
摘要:Java旋转算法Collections.rotate package com.example.core.mydemo.javaDemo; import java.util.ArrayList; import java.util.Collections; /** * 原始集合:[1, 2, 3, 4,
阅读全文
posted @
2024-11-22 18:44
oktokeep
阅读(56)
推荐(0)
Java洗牌算法Collections.shuffle
摘要:Java洗牌算法Collections.shuffle package com.example.core.mydemo.javaDemo; import java.util.ArrayList; import java.util.Collections; /** * 随机打乱 洗牌算法用于随机打乱一
阅读全文
posted @
2024-11-22 18:44
oktokeep
阅读(102)
推荐(0)
Java排序算法Collections.sort
摘要:Java排序算法Collections.sort package com.example.core.mydemo.javaDemo; import java.util.ArrayList; import java.util.Collections; import java.util.Comparat
阅读全文
posted @
2024-11-22 18:43
oktokeep
阅读(28)
推荐(0)
Spring接口缓存实现方案Caffeine和EhCache
摘要:Spring接口缓存实现方案Caffeine和EhCache 1.引入jar包 compile("com.github.ben-manes.caffeine:caffeine:2.8.6") compile("org.springframework.boot:spring-boot-starter-
阅读全文
posted @
2024-11-20 19:20
oktokeep
阅读(196)
推荐(0)
linux命令head,tail查询日志头部和尾部 & 查询日志的关键字的上下文日志方法
摘要:linux命令head,tail查询日志头部和尾部 & 查询日志的关键字的上下文日志方法 tail -n 10 test.log 查询日志尾部最后10行的日志;tail -n -10 test.log 查询日志尾部最后10行的日志; 同上tail -n +10 test.log 查询10行之后的所有
阅读全文
posted @
2024-11-20 19:15
oktokeep
阅读(480)
推荐(0)
Gzip压缩文件和压缩字符串,web接口应用
摘要:Gzip压缩文件和压缩字符串,web接口应用 1.压缩文件 package com.example.core.mydemo.gzip; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IO
阅读全文
posted @
2024-11-20 19:14
oktokeep
阅读(213)
推荐(0)
依赖注入和循环依赖注入
摘要:依赖注入和循环依赖注入 1.java bean注入的两种方式1.1 Resource注解方式 @Resource private NestedComponent nestedComponent2; 1.2 构造器注入的方式来 private NestedComponent nestedCompone
阅读全文
posted @
2024-11-20 19:11
oktokeep
阅读(51)
推荐(0)
Apollo配置map键值对的配置
摘要:Apollo配置map键值对的配置Autowired annotation is not supported on static fields: private static java.util.Map com.insurdock.conf.CouponConfigure.chooseCityEma
阅读全文
posted @
2024-11-20 19:08
oktokeep
阅读(281)
推荐(0)
es分页,pageNum从0开始和es排序代码demo
摘要:es分页,pageNum从0开始和es排序代码demo 如果从1开始,每页150条记录,可能查询不到结果。排查下来是初始的第一页的参数错误。 参数从0开始计算,es搜素,需要注意起始页。否则查询结果为空。 //es分页,pageNum从0开始。 protected void page(OrderVO
阅读全文
posted @
2024-11-20 19:04
oktokeep
阅读(66)
推荐(0)
feign jar加载程序启动时报错解决,需要加上扫描路径
摘要:feign jar加载程序启动时报错解决,需要加上扫描路径 Consider defining a bean of type 'com.order.open.service.FeignCancelOrderService' in your configuration. 启动类需要加上如下注解: @E
阅读全文
posted @
2024-11-20 19:04
oktokeep
阅读(31)
推荐(0)
redis hget hdel hgetall
摘要:redis hget hdel hgetall #查询所有,阿里云dms不支持hgetall testService:renter_time_overlapping:租客会员号 #查询HGET testService:renter_time_overlapping:租客会员号 订单号#释放HDEL
阅读全文
posted @
2024-11-20 19:03
oktokeep
阅读(21)
推荐(0)
http响应码简介
摘要:http响应码简介 1 返回401一般生产环境出现这个问题,是由于没有通过接口的登录认证。出现这种情况,一般用户在尝试访问受保护的资源前,需要通过某种形式的身份验证(如登录),但如果未能正确提供必要的认证信息,如Token、用户名和密码等。就会出现返回码是401的情况。 2 返回403如果生产环境请
阅读全文
posted @
2024-11-20 19:02
oktokeep
阅读(98)
推荐(0)
idea No usages found in All Places Press Ctrl+Alt+F7 again to search in 'Project Files'
摘要:idea No usages found in All Places Press Ctrl+Alt+F7 again to search in 'Project Files' 出现 usages 无效的情况 No usages found in All Places 今天偶然间碰到了这个问题, 问题
阅读全文
posted @
2024-11-20 19:01
oktokeep
阅读(775)
推荐(0)
Java大事务处理
摘要:Java大事务处理 1.少用@Transactional注解,可以使用编程式事务2.将查询(select)方法放到事务外,事务失效原因:spring aop需要生成代理对象,直接方法调用使用的还是原始对象,所以事务不会生效。 1.新加一个Service方法 2.在该Service类中注入自己 3.在
阅读全文
posted @
2024-11-20 18:58
oktokeep
阅读(163)
推荐(0)
Java二分查找算法Collections.binarySearch
摘要:Java二分查找算法Collections.binarySearch package com.example.core.mydemo.javaDemo; import java.util.ArrayList; import java.util.Collections; /** * 二分查找算法是一种
阅读全文
posted @
2024-11-20 18:51
oktokeep
阅读(44)
推荐(0)
Java工具类 NumberUtils 对整型数字的引用,判断字符串是否是数字NumberUtils.isNumber
摘要:Java工具类 NumberUtils 对整型数字的引用 package com.example.core.mydemo.javaDemo; import org.apache.commons.lang3.math.NumberUtils; public class IntegerTest { pu
阅读全文
posted @
2024-11-20 18:50
oktokeep
阅读(77)
推荐(0)
Java获取时间戳,毫秒数和秒数
摘要:Java获取时间戳,毫秒数和秒数 package com.example.core.mydemo.javaDemo; import java.time.LocalDateTime; import java.time.ZoneId; public class TimeTest { public sta
阅读全文
posted @
2024-11-20 18:49
oktokeep
阅读(246)
推荐(0)