- 博客(243)
- 资源 (18)
- 收藏
- 关注
原创 带宽的单位你了解多少?
在计算机存储中,1MB(十进制) = 1000K字节 = 1,000,000 字节,而 1MiB(二进制) = 1024KB = 1024 * 1024 B= 1,048,576 字节,但网络带宽通常使用十进制单位Mbps)。宽带是一个名词,是一个服务,带宽是一个量词,决定上网的速度。带宽指的是每秒传输的比特数,带宽单位严格遵循十进制换算(1 Kbps = 1,000 bit/s,代表千比特每秒)实际使用中,带宽可能受路由器、线路质量等影响,达不到 200Mbps。,如光纤宽带、ADSL宽带、5G宽带等。
2025-07-25 13:54:45
318
原创 服务接口504排查
历史经验有的客户因为nginx负载日志没有进行切分定期删除,导致accesslog磁盘写满导致服务异常的情况也是存在的。线程工作异常,不能够及时将脏页刷入磁盘,Free buffers为200代表说明不够缓存,数据处理需要更大的缓存空间。是 MySQL InnoDB 存储引擎最重要的配置参数之一,它决定了 InnoDB 可以缓存多少数据和索引在内存中,(2)进程存在,确认应用的日志,日志如果正常那需要检测 3台服务器的磁盘/内存使用情况。(1)首先登录应用服务器,确认java应用进程存在。
2025-07-14 10:59:28
430
原创 redis的一些疑问
什么时候会执行缓存移除呢?如果方法执行异常是否移除?如果缓存不存在还会移除么?这个移除会在redis的执行历史命令中监控到么?./redis-cli -a密码 MINITOR 监控redis的实时执行命令,大部分PING是类似心跳?使用这个实时监控命令,可以 使用grep管道过滤出指定的key来监控redis命令的执行第一次缓存存在的情况下,执行方法,会有一条del命令;第二次缓存不存在的情况下,执行方法,也会执行del命令;
2025-07-11 16:37:58
286
原创 mysql备份
可以先ps -ef |grep mysql 找到mysql的安装路径,找到路径下的bin路径下执行。./mysqldump -h ip -u用户名 -p密码 库名 > 备份.sql。mysqldump -h ip -u用户名 -p密码 库名 > 备份.sql。(1)如果没有将mysqldump加在环境变量里,则会报命令不不存在的错误;(2) -p和密码之间不能有空格,否则就会把密码当成库名了。
2025-07-10 20:30:33
112
原创 curl命令请求参数缺失问题
加单引号,服务端还是只能接收到第一个参数param1,而后面的param2和3都没收到。测试发现如果curl命令请求的接口地址不加任何符号,只能接收第一个参数。
2025-07-10 18:16:13
218
原创 接口504 gateway timeout
在看nginx的error日志,发现报了 failed (24: Too many open files) while connecting to upstream,这个就是文件句柄设置太小了。基于历史经验,有些客户因为负载nginx日志未做切分定期清理,导致accesslog巨大,磁盘爆满导致服务504,但这个客户登录服务器查看磁盘资源都正常的。使用ulimit -a 查看是默认的1024,确实太小,修改成65535,但怎么改呢?
2025-07-08 14:31:01
154
原创 半天解决一个问题
获取验证码和校验验证码不是同一个手机号?导致业务一直提示验证码错误。一步步抽丝剥茧,代码不会骗人,遇到问题一定要冷静,一步步分析。用户修改了手机号,但缓存里还是旧的手机号...
2025-07-04 14:59:28
224
原创 跟rocktmq杠上了
昨晚压测的时候还是6个节点消费,今天变成4个了,想了想变动,今天运维调整开启启动脚本,和这个有关系?不应该啊,但是java应用也没有重新部署,除了这个变动没有其他原因了,后来运维又一波操作,还是解决了。继上一次mq注册问题,今天又出现了,mq阿里云管理台显示注册成功了,但实际应用压测时,发现有2个节点并没有消费mq消息,这是为何。
2025-06-26 23:03:32
106
原创 mq客户端注册不上去
晚上搞到12点因为一个问题,mq配置检查了,但应用起来后就是mq控制台看不到消费者,显示消费者离线的状态,后来想起rocketmq都有日志的,看/root/logs/ons.log 很明显有个NumberFormat的异常,因为mq连接服务器时将地址按照:分隔,配置的是http://*****:8080,报错显示把//到8080前的冒号这一段当成了端口号了,但为什么呢,地址q控制台对接时提供的tcp对接地址,切有 其他应用注册成功了,为什么这个服务就是无法注册上去?
2025-06-25 17:23:34
137
原创 java ESAPI 批量更新
项目需要批量更新es里的文档某些字段,用到bulk,但发现有些更新会报错,有时候因为文档不存在NOT_FOUND错误,有时因为version冲突(多线程并发更新同一个文档)。
2025-06-19 14:04:55
143
原创 http接口莫名奇妙返回body空白
结果同事一看有些客户就不报错,而有一个客户就报错,然后结合接口里的代码就猜测可能是list转map时,因为key有重复报的错把?接口响应是200,但就是空白,日志也没有任何异常,奇怪不奇怪,controller的入口日志有,但返回前打印的日志也没显示出来。原来生产代码里有个全局异常处理类,针对这个类型的异常也没输出日志...感觉程序从哪儿出错了,百思不得其解后还是求助同事帮忙一起看下;改成增加 ,(key1 , key2)-> key2 )会报空指针异常,如果存在list里存在相同key。
2025-06-09 13:29:07
228
原创 Linux安装字体
如何安装新字体呢,其实很简单,就是拷贝指定的字体文件到服务器字体目录下,这里为了方便,从生产服务器指定目录将字体文件整个打包拷贝。fc-list ---查看已经安装的字体(如果提示command not found,先执行。再查看字体,都放在/usr/share/fonts/目录下,很显然这里没有包含中文字体。放在/usr/share/fonts/,只要将字体文件拷贝到这里就可以了。
2025-06-09 10:01:52
370
原创 Mysql莫名奇妙重启
收到客户反馈有时接口报504,查看应用日志发现故障期间数据库连接失败。在到数据库服务器查看系统日志/var/log/messages。在查看mysqld.log发现 11:46确实有一些错误日志。
2025-06-05 15:23:18
253
原创 日常踩坑-pom文件里jdbc配置问题
后来spug构建历史才发现,构建报错了,而我们运维的策略是构建报错会拉上一次生成的jar包,看不出来构建报错的明显错误。明明在配置文件指定的<jdbc.url>是新的,怎么spug构建出来的jar包里还是老的?原来jdbc里配置的&没有转义,需要转移成&
2025-05-28 15:15:42
182
原创 记一次生产事故
最后请来公司的专家团队,专家通过jstack pid分析blocked的线程,定位到一行WsClientUitl代码,随后将对应客户的这个地址下线,不再webservice调用,mq消费速度才慢慢升上去,最终消息消费完。后堆积越来越多,运维研发先考虑加机器去消费,但好像效果并不明显,期间还发现有些mq消息消费线程有阻塞,本来1秒中可以消费多条消息的线程,怎么间隔好多秒才处理?事后同事写了程序测试这个方法发现确实在会阻塞一段时间。
2025-05-26 17:11:14
202
原创 dubbo使用nacos作为注册中心配置
nacos://ip:端口?namespace=, nacos://ip:端口?namespace=namespace= 正确的!在最后一个注册服务ip加namespace即可。namespace=, ip:端口?namespace=如果有多个地址,这块如何配置呢?
2025-05-23 17:00:15
293
原创 mysql获取不到连接 哪位大神帮忙看下
排查了负载,应用,数据库服务器上的cpu和内存,磁盘资源都正常,ulimit -a查看句柄数配置也都是65535足够多了。innodb_buffer_pool_size=4G 把这个加到数据库的配置 重启服务。show variables like '%slow%' 查看慢sql相关配置。但这个单位是多少呢?是秒,一次查询10秒那够慢的了。查看慢sql日志,果然有慢sql呢。
2025-05-23 16:57:31
180
原创 linux自带的定时任务日志
crontab -e添加定时任务,定时触发一个接口的调用补偿,但定时任务的日志在哪儿呢?找了半天在/var/log下的cron文件里!
2025-05-21 16:15:35
305
原创 rocketmq连接问题
当修改代码支持新实例连接时,再部署老的服务,发现mq控制台消费者无法注册上去,说明老实例还没法用NAMESERV_ADDR连,或者用这个连的时候,之前的mq地址配置都需要修改。阿里云控制台的示例代码也是通过NAMESRV_ADDR连接的,不知道为什么之前的代码用ONSAddr连接..工作需要,新搭建一套服务,买了新的阿里云mq实例,但连接时报错了,找不到nameserv,找客服询问,说新实例必须用。但我们已有的代码用的是,也不知道这个地址从哪儿来的,和阿里云mq控制台tcp接入点地址不一样,
2025-05-20 10:12:29
259
原创 http请求卡顿
但nginx和java应用又没有错误日志,让人抓耳挠腮,最终还是请运维大哥帮忙,一顿操作后系统暂时无卡顿了,佩服的同时感觉疑惑到底调整了啥东西这么神奇?(2)cat /proc/sys/fs/file-max 系统级别的,所有进程可打开的文件描述符最大数。(1)cat /proc/sys/fs/file-nr 查看系统当前打开了多少文件描述符。# 客户端请求头读取超时。文件描述符,又叫文件句柄,linux系统里一切皆是文件,比如套接字,磁盘等各种资源。
2025-05-14 16:08:27
205
原创 java应用启动慢?
hostname命令获取本机的主机名称,然后vim /etc/hosts配置到127.0.0.1的映射下即可。看日志发现有个hostname花了将近1分钟的时间!
2025-05-07 14:23:54
171
原创 es数据导出
但这样发现导出的条数总是少一些,导出数量越多缺失的越多!到底哪里有问题呢,后来从es的kibbana命令看突然发现一个问题,es的时间是带毫秒的,而我查出来之后转成的date只到秒,所以,第一页的创建时间如果是40秒.738Z,解决办法分页查询的下一页的截止时间是上一页截止时间+1秒。整体思路:分页查询es,一页查询2000条,下一页查询的截止时间取上一页最后一条记录的创建时间(因为分页是按照创建时间逆序排列的),组装最后导出的list,利用EasyExcel导出到excel表里。有大数据量导出的需求。
2025-04-27 16:16:40
439
原创 Mongo常用命令行
db.users.find().sort({age: 1}) ----正序排列 {"age":-1} 按age字段逆序排序。mongo ***:端口号(默认27017)/库名 -u 用户名 -p 密码。db.表名.findOne();1 连接mongo数据服务器。
2025-04-27 11:04:31
183
原创 http请求报错
调用一个外网接口(客户的内网环境通过客户的网闸调用互联网接口)报的这个错误,在报错的服务器上进行curl测试这个get接口,结果又报了curl: (52) Empty reply from server。没有任何实质性报错,先反馈客户是否最近调整了出网配置什么的,待问题解决补充。使用curl -v可以打印更多的请求信息。
2025-04-21 09:08:23
240
原创 Tablespace is missing for table
最后和运维确认,删错了frm文件,我删的user/local下的,实际上3月28日进行了数据库恢复,恢复后的数据文件目录再home/下,home下有ibd没有frm,local下有frm但没ibd,不知道数据库经历了怎么个坎坷, 运维继续操作删除.idb后,创建表还是不行。从 MySQL 5.6 版本开始,推荐使用“文件-每表”模式(file-per-table mode),在这种模式下,每个表的数据和索引被存储在独立的 .ibd 文件中。这样做的好处包括更好的性能、更容易的数据恢复和更灵活的空间管理。
2025-04-16 14:05:57
385
原创 HttpClient工具 timeout没生效?
设置的3秒超时,有一个http接口最终20多秒后才响应read timed out。但实际测试时,post的超时实现和全局超时实际好像都没生效!(2)请求的线程数增多,响应时间就增多了,是和调用的接口能承载的并发量有关么?如果我用5个线程,接口能正常返回,但响应时间超过3秒,大概是4-5秒;如果用10个线程请求,接口也能正常返回,但响应时间7秒-10秒;如果用100个线程请求,有的就显示读超时了,为什么?(1)不管几个线程调用,为什么3秒超时没起作用?,即请求对象上的超时设置会覆盖全局。
2025-04-16 12:41:01
281
原创 使用sm4算法实现消息对称加密
由于安全性考虑,接口调用使用sm4算法加密入参,对方使用sm4算法解密入参,并将返回结果进行sm4算法加密,我方再使用sm4解密获得返回的原json串。改成以下版本即可,最终我再试着从jre的lib下删除这个包,已经java.security删除策略也能运行成功!最终还是版本问题呗。这个版本怎么跑都报错,看了我本地仓库还有其他版本的jar包,抱着试一试的态度,改了个版本,居然可以了!但由于使用jdk是1.8_20版本,项目里依赖的bouncy版本是。
2025-04-02 10:01:38
728
原创 一些数学概念
小编目前想学习一些密码学理论,结果一开始就遇到了坎儿,涉及的数学理论全都还给了数学老师,但没关系,再回忆学习一次。。先看一些基本概念。
2025-03-24 11:06:59
593
原创 Springboot java初始问题
如果考虑到父类,其初始化顺序为:父类静态变量初始零值 -> 父类静态变量显式赋值 -> 父类静态代码块赋值 -> 子类静态变量初始零值 -> 子类静态变量显式赋值 -> 子类静态代码块赋值 -> 实例变量默认零值 -> 父类构造代码块赋值 -> 父类构造函数赋值 -> 子类构造代码块赋值 -> 子类构造函数赋值。启动的时候spring报错了,初始化块的时候,空指针异常了,也就是说 serviceB在调用的时候并没有被初始化。对象的初始化顺序和块谁的优先级高呢?初始零值 -> 静态变量显式赋值 ->
2025-03-21 13:37:23
244
原创 Webservice调用&测试
返回以xml字符串返回,xml某个字段是一个json字符串。请求头增加Content-type:text/xml。请求body以xml字符串传递。SOAPAction:方法名。
2025-03-13 15:37:10
604
原创 3月09日奇怪的Incorrect datetime value
看应用日志当前时间,和产生的update_time(程序里根据new Date()直接生成的)不一致,看着就像是时区的问题,但即便时区有问题,应该插入的时间不对才是,也不应该报时间格式不合法的错误啊,而且实施后来说插入又没问题了,搞的人百思不得其解,网上搜了相关文章,不是说插入的时间格式的问题就是说需要显示指定datetime的精确位数问题(但这个我试了sql都能插入成功),再说实施反馈问题说后来自己又恢复了,而且去年3月也发生过这个错误,这就比较诡异,好像是多事的3月!那怎么再复现这个问题呢?
2025-03-10 14:04:53
259
原创 mysql命令行执行sql文件
执行sql,但有个问题,如果sql报错,就终止了,比如主键冲突,后面的insert继续想执行,那就需要添加 --force 参数。mysql -h 数据库ip -u 用户名 -p 库名 < /opt/20241201_order.sql。输入密码后执行sql文件;当然库名也可以在sql文件中通过use 数据库名;
2025-03-10 11:37:54
140
原创 java jar包内的jar包如何打补丁
2、内层包使用jar -xvf service-hisca-impl-1.0.0.jar 解压后,替换里面的class文件后,再重新使用 jar -cvf service-hisca-impl-1.0.0.jar * 打包新的内层补丁包;1、主包jar -xvf hisca.jar解压后,找到内层包service-hisca-impl-1.0.0.jar。重新将解压后的主包目录下所有文件打包,jar -cvf hisca.jar * 打主包。3、将打包的新内层jar包拷贝到解压后的主包的指定目录下;
2025-02-28 09:22:07
460
原创 504 Gateway Time-out
nginx访问某后端服务html显示504,但nginx上telnet ip 8888端口是通的,但curl访问接口就一直没响应,应用ip+8888端口访问页面也没有响应。最后是运维大哥过来,正好一起确认下,试着把应用端口由8888改成别的,修改nginx代理端口,再试结果通了!可能8888这样的端口比较危险,被防火墙加入了限制。
2025-02-24 16:27:53
121
commons的相关jar包
2010-07-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人