AWS 设置 SES 事件 HTTPS 通知
SESSimple Email Service. amazon aws的邮件服务配置新建配置集全部默认配置创建完后, 添加目的地, 选择: Amazon EventBridge, 并根据需要选择事件类型创建API目标进入Amazon EventBridge界面创建API 目标输入自己的https地址
x-www-form-urlencoded 自动转小写
场景用户进行邮箱验证, 发送成功了, 验证码也收到了, 也提交对了. 但, 就是不通过.原因前端通过form表单提交的数据 application/x-www-form-urlencoded后端接收的时候, 大写被自动转成了小写.SpringBoot: 1.5.10.RELEASE
AWS SES SDK V2 API 邮件发送
记录一下@Bean
public SesClient sesClient(EmailAwsConfig config) {
AwsBasicCredentials build = AwsBasicCredentials.builder()
.accountId(con
排查记录: Java所有接口卡死
线上接口, 每天凌晨三四点后开始卡死, 重启后恢复调用后等待两分钟, 然后504两分钟正好是nginx反代的超时时间排查过程日志把nginx和应用日志都找出来看了下, 没发现什么问题应用机器状态看了下cpu占用率/内存, 没问题磁盘占用也没问题应用状态通过jps查找到java进程然后jstack 进
PostgreSQL bytea与字符串互转
假如name是bytea类型的字段新增时INSERT INTO users (name) VALUES ('zhangsan'::bytea)查询时SELECT CONVERT_FROM(name, 'UTF-8') AS name FROM users
Spring RedisTemplate Scan
keys 不能用, 那就只能用scan了public static Set<String> scan(RedisTemplate<String, String> redisTemplate, String pattern) {
return redisTemplate.execute((Re
基于Redis ZSet的滑动窗口限流
private boolean limit() {
String ip = ServletUtil.getClientIP(request);
String banKey = "limit_ban_" + ip;
Boolean b = redisTemplate.hasK
PostgreSQL的"find_in_set"
SELECT *FROM sys_dept WHERE #{id} = ANY (string_to_array(ids, ','));注意id也需要是字符串形式
Vue Computed引起的页面卡死
前端出现了个bug当请求接口时, 前端就会卡死, 直接无响应. 控制台看到对应请求的Timing一直卡在Initial connection.将请求单独拿出来放到Postman中请求, 正常响应.通过控制台Network中请求的Initialor进行断点跟踪, 发现前端实际也是获取到了接口的响应.
Git撤销已Push的Merge
复现场景现有一个分支 master基于master创建分支mergemaster正常commit & push Cmerge正常commit & push D和E将merge合并到master, commit为MA -- B -- C -- M (master)
\ /
JMeter并发测试-计数器使用
实现10个线程并发调用接口每个请求携带的参数都不一致用来测试接口的并发安全性新建测试计划在测试计划下新建线程组10个线程循环1次在线程组下新建取样器-HTTP请求设置请求地址在HTTP请求下新增配置元件-计数器起始值 0递增 1最大 9数字格式 0引用名称 cnt设置HTTP请求的参数使用${cnt
Ghidra修改exe文件中的字符串
下载一个, 配置好jdk21导入项目初始化后, 选择Import File, 随便选一个简单的exe文件我这里是自己写的关机程序然后菜单 Search - For Strings, 选项默认.Filter中输入我们要过滤的thy搜索出结果后, 双击, 回到主视图选择第一个字符 't', 右键 Dat
STC89C52RC定时器
如电路图定时器分为四个模块时钟源模块计数器模块控制逻辑模块中断模块 (notify)如果要使用定时器, 需要对模块对应的寄存器做初始化本次选择定时器0, 工作模式1配合芯片手册初始化TCON和TMOD两个地址所以时钟源模块控制模块中断模块M1/M0两位共同选择模式, 赋值01代表模式1计数器模块综上
Chrome插件在HTTPS页面获取HTTP接口数据
场景是这样的, 插件要在https页面根据规则做拦截, 但是获取规则的接口并不是https的.发起请求时, 被浏览器的安全策略给拦了.这里记录下解决思路页面上不能进行请求, 但是service-worker里是可以的所以将service-worker获取到的数据传到页面即可service-worke
在线测试跨域
找个网页F12后, 控制台输入如下代码, 能获取到响应即正常var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost:7099/api/xx/xx');
xhr.send(null);
xhr.onload = functi
ck 每分钟查询数, 平均耗时, 最大耗时
with toStartOfInterval(event_time,toIntervalSecond(60)) As time_
SELECT time_ , count(), avg(query_duration_ms), max(query_duration_ms) FROM system
nginx proxy_buffer导致请求失败
chrome提示net::ERR_INCOMPLETE_CHUNKED_ENCODING一个接口部署在ecs上, postman访问可以, 前端项目访问失败请求成功的是没有经过nginx, 失败的是通过nginx转发 /api/xxxjava报错ClientAbortException: java.
关闭 Android SplashScreen
SplashScreen在Android 12上是强制的,如果你什么都不做,你的App在Android 12上就会自动拥有SplashScreen界面 但是这个SplashScreen界面太局限了能改的地方太少了 其实也没什么他主要作用是为了在App启动初始化的时候避免让用户在一个空白界面等待过长时
Visual Studio QT插件 添加报错no value for qt_install_prefix/src
挪动了qt的目录后, 插件添加不了invalid qt versions qmake error: no value for qt_install_prefix/src解决方法qmake同级别路径新建qt.conf文件内容[Paths]
Prefix = ..