自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(169)
  • 资源 (18)
  • 收藏
  • 关注

原创 国庆第一天出师不利

界面最多一页查50条,所谓批量发送死信也只能一页一页发送,90w条要点击多少次?要疯,随咨询阿里云客服,客服提供了api 可以查询死信,并提供重新发送消息的api。开始时间,截止时间是死信的存储时间;对比看了下生产的消息,0点的消息,死信存储时间4:45,也就是默认重试16次后(阶梯式),最终依然没消费掉的时间。哎,节前以为都没什么事情了,结果今天一大早收到运维电话....生产消息堆积了。紧急处理创建索引,解决!阿里云消息死信消息堆积了90w条,my god。es我们按月创建索引,发现10月的索引不存在!

2024-10-01 23:14:55 92

原创 查了好几天的问题终于画上了句号

(这个运维之前反馈阿里云dts数据迁移失败,说是字符集不一致导致的失败,但当时没仔细确认,谁知道运维自己改了目标表的字符集utf16,但2个原表其实是utf8编码和utf8mb4),迁移没报错了,但数据错了。那如何兼容啊,老天,结果早上让同事也查一下,同事说你给我的id是31位的,为什么呢?7 然后昨天也不知道就查了20240902的归档表的 订单表和详情表的总数,总数是一致的,说明detail数据并没有少啊,然后从反馈问题的时间段查询这个时间段的数据,把id都站出来,然后vim看了下,居然傻眼了。

2024-09-24 17:30:33 904

原创 Linux常用命令使用

有时打的jar包发现jar包中配置不对,为了快速验证jar包,不想反复构建部署,需要修改jar包中文件,然后再打包成jar,当然vim *.jar就可以;但有时运维限制没有编辑权限。这时候就需要先解压jar包,然后在将目录打包成jar。jar -cvf *.jar ./ 将当前目录下所有文件打包成jar (不用一一指定文件名,可能存在遗漏问题)jar -xvf *.jar ----解压jar包。

2024-09-18 15:39:57 248

原创 spring内置线程池

程序里注入了spring内置的线程池,但没有看到线程池相关参数配置(corePoolSize maxPoolSize 队列大小),网上查说默认是1个线程,结果和生产实际看到的不一致。从生产可以看到有8个线程在跑,task-1 task-8,那这个配置在哪儿配的呢?最终是另一个同事指点spring容器里默认给了8的配置。那这个线程池参数配置多少合适呢?

2024-09-13 12:17:41 220

原创 StopWatch使用

调用stop()方法时,必须是running时才可以调用,否则会报状态不合法错误。

2024-09-10 15:59:34 170

原创 缓存对象反序列化失败

未定义serialVersionUID,新增了属性,导致缓存对象反序列化失败。所有缓存对象必须指定序列化id。

2024-09-06 18:12:53 415

原创 http 408错误

一开始怀疑是nginx配置问题,网上搜也说可能是nginx的请求body_buffer_size设置问题;但后来跳过nginx,直接ip+端口访问后端应用,依然有问题,看后台日志返回有错误。内网访问DMZ区的网络有问题,导致接口调用卡死,把应用服务迁移到内网服务器。有客户反馈调用我们html转pdf接口,偶发 408错误。最终运维定位是网络问题,

2024-09-06 18:11:34 939

原创 mysql常用命令

工作中关系型数据库与mysql打交道最多,但其实很多函数还是不够熟练,每次都需要查询。做下总结。

2024-09-02 16:02:05 286

原创 本地启动java报错

用了lombok工具包里的注解 @Data 代替一堆setter getter但本地启动报了这个错误。搜了下网上的解决方案 lombok版本太低,升级版本即可。lombok从1.18.6升级到1.18.24,问题解决!

2024-08-28 17:08:21 115

原创 ES 根据条件删除文档

es根据条件删除命令执行

2024-08-28 09:36:50 375

原创 冷数据如何备份

公司用的阿里云的polardb资源,目前已经占了47T,眼看着随着业务量增加数据量剧增,这些数据又不能删,所以运维研发讨论方案如果对一些历史冷数据进行归档。如果有些情况需要恢复某些数据,因为我们历史表按天存储一个表,会根据时间恢复对应天的数据即可,mysql看样子没太大问题,只是恢复时执行sql时间的问题。目前的方案:将数据导出sql 压缩后上传阿里云oss文件服务器,文件服务器成本低多了。但es如何导出,再进行恢复?

2024-08-22 10:43:06 92

原创 http连接未释放导致生产故障

大早上7点领导给打电话,那会儿娃还在睡觉...还以为是什么垃圾电话,直接挂了,吃完早饭才看见群里爆了,生产服务报警....几个研发运维小伙伴一起讨论方案,初步因为昨天发版先考虑回滚服务,但不严谨的是7:38只回退了 1个微服务节点,另一个节点后来也报警8:17回退,至此运维看阿里云监控tcp连接数才降下来,期间还有oom报警。问题:代码是同事从另一个项目拷贝过来的,而另一个业务线推送量可能没那么大,而我们业务线量大,且定时任务会推送提醒,腾讯云 连接超时了导致生产事故。但并未设置连接超时和读超时。

2024-08-20 13:36:07 504

原创 因http连接问题产生的生产事故

早上7点接到报警(有机器oom报警,且负载很高,运维看阿里云监控上的tcp链接),研发和运维小伙伴一起分析,因为怕影响线上客户,直接选择了服务回退(昨天)。使用的hutool工具,默认超时时间20s左右。问题1 调用http接口未设置超时时间。问题2 http连接未释放。

2024-08-20 12:36:53 180

原创 工作日常踩坑

在BaseController中 使用 spring @Resource注解引入一个service发现找不到;最终使用容器上下文工具类获取service。

2024-08-15 17:08:44 172

原创 mysql druid连接池配置

这个配置有点儿傻眼,直觉告诉我minIdle和initialSize相等,那不就等于所有连接都闲置但不能用么?但因为是直觉(实际上完全没理解这个minIdle的含义),对于做技术的人得用技术说话才是,还是默默打开搜索引擎看看druid这些配置项什么意思。这个是搜了网上配置说明,但还是一头雾水, 连接池最小空闲数量。在池里创建了的连接,但没有被使用的连接么?但sql没有任何语法错误,只能猜想是否连接数据库有问题,通过telnet ip 端口 确认能连上db服务器,再猜想应用层面配置问题?

2024-08-12 14:49:37 249

原创 rocketmq入门使用&常见问题

监听为什么会挂,监听挂了为什么mq还会一直往这个消费者放,不应该将消息分发到其他节点的消费么?看阿里云日志,消费者日志从凌晨就没有了,为什么?未完待续,需要学习。

2024-08-05 17:22:53 117

原创 dubbo调用知多少?

这里说的超时,是针对dubbo provider调用方来说的,比如提供方执行需要3秒,设置了超时时间1秒(默认),则consumer调用方会报超时错误,但实际上服务提供方依然在正常执行方法逻辑。dubbo默认超时时间1000ms,但对于有些业务可能不满足需求,可根据业务场景定义超时时间。超时时间设置可以选择在consumer端、provider端全局、接口、或方法设置。

2024-08-01 09:33:13 424

原创 慢sql导致接口请求超时499

调整前,接口调用很快就超时,因为有策略下线1分钟后继续调用,但每次调用持续不了多久就又超时,看nginx的accesslog有很多状态499的响应时间均大于3秒(因为调用方设置的readtimeout是3秒,所以超过3秒调用方就关闭连接,导致客户端这边499)。一上去确认问题,查nginx配置,查服务器上相关网络配置(因为有现象:time_wait的tcp链接也比较多 ),看应用程序的cpu,内存,磁盘...及日志也没报错;这个语句创建的表,结果A表和A_bak表的字段结构一致,,导致A表很多慢sql!

2024-07-25 15:16:00 245

原创 工作中es客户端常见使用错误

es客户端常见错误

2024-07-24 10:40:17 474

原创 编程题外话--絮叨絮叨

别人赞美觉得是假的,自己不配,工作事情来了恐惧觉得自己胜任不了,这些想法其实并没解决问题本身,反而在扩大问题。据不完全统计,一个人如果一天90%废话,那这个人就是开心的,不知道真假,但值得借鉴,平时不必都是正事才说话,废话也很重要,关乎一天的心情!小白快40岁,回顾小半生,自认为是一个比较悲观,容易内耗、焦虑的人,仿佛价值感极低。娃脾气很大,有时很恼火急躁,转念一想,她有自己的想法和主意了,完全听话也不一定好呢;

2024-06-19 18:08:17 238 3

原创 Springboot的schedule定时任务的坑

小白这周遇到生产问题主要和定时任务有关,springboot的@Scheduled注解的定时任务明明定义的cron表达式是每隔3分钟执行1次,结果搜日志发现不一定按照这个执行,而且最近一次执行到28日19:12分之后就没再执行了,小白经过2天的漫长分析发现对这个注解定时任务的认识太浅薄了,只知道用,却不止所以然,遇到问题就傻眼了....记录下来原因。通过网上查询得知springboot默认是单线程执行定时任务,如果有的定时任务执行时间比较长,会影响其他定时任务的执行,也就是说执行会延迟。

2024-05-31 15:49:29 437 1

原创 ElasticSearch常见查询

说明:业务中tag字段存的是多个字段,分割;查询的时候也需要可以多个标签查询,比如tag是内科,五诊室 则输入五诊室或者内科都应该查到这条数据。

2024-05-27 08:35:46 226

原创 mysql连接获取超时问题初探

如果是因为定时任务锁表,那可能后面几天 (19号,20号...)都应该报错才是,但只有18日报错,不能理解。这个表的数据量也比较大,删除任务针对13天前的数据进行删除 (有时20-50w左右的数据量)。但分析报错的sql发现都是操作的同一个表,有定时任务对表的删除,有新请求对表的写入、更新。需要在看下操作系统级别的日志 (/var/log/message)---未完待续...在看对应目录下的日志文件,发现5月18日凌晨有异常关闭,为什么关闭了?

2024-05-23 14:34:59 350 1

原创 那些年工作中踩过的坑

第二天早早到了公司心想数据都跑完了,要不重启下服务看下是否会释放磁盘空间,果然重启后磁盘占用率变成1%,直觉有时是最简单有效的呢,但也需要谨慎,看来释放java进程删除文件未释放的空间,最简单粗暴的办法是重启java进程,有没有其他一劳永逸的方法呢?100G的磁盘空间,看着使用了81G,慌慌的即将磁盘爆满还找不到是哪儿占用的!其实数据库时区是SYSTEM,并没有问题,是代码里的日期转换类设置的时区是UTC,导致写入数据库的时间+8小时!先睡觉第二天换个脑子,但疑问还是未解开,那81G是怎么回事?

2024-05-23 13:54:16 248 1

原创 【接上篇】accesslog分析

阿里云日志分析SPL示例

2024-05-21 15:49:54 386 1

原创 SpringBoot配置accesslog(内置undertow容器)

公司接口请求经过多层代理,有时总请求时间超长,但nginx中的request_time和应用日志里的时间对不上,为了记录应用服务的http接口访问时间,开启springboot的accesslog。因为用了 %D,记录请求所费时间, 所以要在config配置内中加入下面代码,开启undertow计时。注意,common格式的日志输出并没有响应时间的输出,如果想输出响应时间,需要用%D。%b: 发送的字节数(不包括头域),如是 - 表明没有字节发送,%u: 远程受信用户名: 经常是 -

2024-05-16 14:05:58 537

原创 java开发日常问题

(1)背景:小白在处理导出数据时发现一般一个txt 有8G,这么跑下去磁盘早晚会爆,想着把txt压缩成zip文件后,把源文件txt删除,会不会空间会小一些,因为zip后也有差不多1G左右,但zip后源文件txt已经删除后磁盘空间依然不释放(因为晚上22点收到了磁盘告警>80%),100G的磁盘空间,使用了81G,但du -sh * 看数据文件已经不大了,找不到是哪儿占用的!其实数据库时区是SYSTEM,并没有问题,是代码里的日期转换类设置的时区是UTC,导致写入数据库的时间+8小时!怎么彻底释放空间呢?

2024-04-26 16:16:35 226 1

原创 微信公众号被动回复消息\n \t不起作用问题

问题的根源:回复公众号粉丝的文本消息时返回的整个是个xml的字符串,而项目中有个自定义的json转换工具类,会对所有http请求返回值再进行一次序列化转换,导致返回的string类型又加了一层 "",公众号将xml字符串就原样输出了,\n就是\n不代表换行。测试过程中,我发现配置了 如果是双引号,a标签对应的连接也不显示了,且换行符\n到界面上就是 \n,而不是换行的效果,搜索很多文章,都未解决问题,最终发现公司另一个公众号的消息回复换行是正常的,找到对应的研发,才解决问题。

2024-04-19 15:27:51 326 1

原创 jdbc的ResultSet坑

判断是否查到记录用 rs.getRow() == 0 ====这个是错误的,有数据这个row也是0;if (rs.getRow() == 0) =====一直是false。getRow()并不是获取总行数,而是返回当前指针所在函数,故在不移动指针时一直为0;判断是否存在记录,要用 rs.next()这个判断。

2024-04-19 15:16:38 152

原创 本地缓存LoadingCache的使用示例

本地缓存LoadingCache的使用示例,定时刷新refresh异步非阻塞,而设置了expireAfterWrite,到期后自动执行load方法会阻塞

2022-04-12 11:44:49 366

原创 Java单元测试原则

单元测试理论怎么测AIR原则A:Automatic(自动化)I:Independent(独立性)R:Repeatable(可重复)2. 【强制】单元测试应该是全自动执行的,并且非交互式的。测试用例通常是被定期执行的, 执行过程必须完全自动化才有意义。输出结果需要人工检查的测试不是一个好的单元测试。 单元测试中不准使用 System.out 来进行人肉验证,必须使用 assert 来验证。3. 【强制】保持单元测试的独立性。为了保证单元测试稳定可靠且便于维护,单元测试用例之 间

2022-02-15 10:59:15 704

原创 play框架

Play框架使用的是Netty基于事件的分布式处理框架,NIO。为了学习play框架,akka以及scala,需要先下载一个type-safe的activator,解压下载包,进入目录运行activator.bat ui 访问http://localhost:8888可以看到一些模板项目可以根据UI中的模板去创建自己的项目,命令行操作如下:activator new 创建...

2016-01-26 14:02:15 122

原创 JSONP

JSONP主要代码: [code="java"]StringBuilder result = new StringBuilder(json.toString()); String callback = request.getParameter("callback"); if(callback!=null && callback.trim() != "...

2012-03-14 08:59:42 88

原创 memcache使用实例

[size=medium]为了在本机上测试,必须先安装memcache的服务器端,安装文件见附件,只能在Administrator用户下才能启动memcached服务。 首先要下载memcache的客户端java实现的jar包,用maven则直接配置即可。[/size]测试代码如下:[code="java"]import java.io.IOException;impor...

2012-02-27 14:39:33 98

原创 使用maven构建web项目实例

[size=medium]用maven构建web项目,首先要知道标准的目录结构,和一般的maven项目相同,源文件存放在src/main/java中,配置文件存在src/main/resources目录下。测试的代码放在src/test/java下,对应的资源文件放在src/test/resources目录下。除了这些目录外。web项目还有一个src/main/webapp目录,该目录必须存在...

2012-02-24 15:04:55 79

原创 html5简介

HTML5 拥有多个新的表单输入类型。这些新特性提供了更好的输入控制和验证。本章全面介绍这些新的输入类型:emailurlnumberrangeDate pickers (date, month, week, time, datetime, datetime-local)searchcolorE-mail: Homepage: Points: ...

2011-07-21 14:36:12 93

原创 Android第一步

Android开发环境搭建及第一个实例[size=medium]首先要保证有jdk,然后按照android sdk,sdk有不同的版本,到官网下载至少一个平台即可,然后按照eclipse插件ADT,可以在线安装,也可以下载插件的zip文件,然后复制到eclipse对应的plugins目录下即可,要运行android还需要创建一个avd。即adroid virtual device,用于指定...

2011-07-01 15:22:16 75

原创 Linux的ASCII码文本编辑器

[size=medium]Linux下的纯文本文件编辑器Linux下有很多文本编辑器,如vi, emacs, xemacs, joe, e3, xedit, kedit, pico .... 基本上 vi 共分为三种模式,分别是『一般模式』、 『编辑模式』与『指令列命令模式』三种! 这三种模式的作用是∶一般模式∶以 vi 处理一个档案的时后,一进入该档案就是一般模式了。...

2011-06-27 14:55:33 190

原创 cmd运行,一闪而过的解决办法

[size=medium]方法1: 你中毒了,系统中有个进程在监测你的命令,看到CMD就关闭,可以在任务管理中看看有没有可以进程,关掉他,应该可以打开,如果还不行,那就是已经注入系统进程。杀毒就很困难了。重做系统好一点。方法2:注册表:HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun里的值清空,就是用del把里面...

2011-06-23 10:21:17 778

原创 java中的servlet面试题

[size=medium]Q: Explain the life cycle methods of a Servlet. A: The javax.servlet.Servlet interface defines the three methods known as life-cycle method.public void init(ServletConfig config) th...

2011-06-22 10:43:19 116

想太多_眼球先生

非计算机的小书,放在这里只是为了让IT人换换脑子,但愿有人喜欢

2016-05-05

21天学通java 电子书下载

提供java的入门电子书,内容详尽,示例丰富,适合完全不了解java的初学者

2011-03-22

commons的相关jar包

commons-dbcp.jar用于数据库,commons-lang.jar,commons-collections.jar,commons-pool.jar

2010-07-19

mysql驱动包下载

mysql驱动包下载,在数据库开发时需要连接数据库,就需要驱动包

2010-07-19

万能播放器KMPlayer

几乎所有视频格式的视频都能播放,很轻巧,支持dvd格式,avi等

2010-07-19

Tomcat 6下载安装文件

apache-tomcat-6.0.16,做web应用开发

2010-07-15

daemon4303-lite下载

daemon4303-lite.exe虚拟光驱,可加载iso等映像文件

2010-07-15

Lucene检索文本,建立索引

用Lucene检索文本,建立索引,用struts构建web程序框架

2010-07-09

使用ant构建helloworld

使用ant构建helloworld,怎么使用ant构建一个项目,包括build。xml的结构和编写

2010-07-09

mysql的建立连接,读取数据

mysql简单操作,测试mysql的驱动能否找到

2010-07-09

struts整合hibernate的mvc例子

这是struts整合hibernate的mvc例子,实现的是物品的竞价,用的数据库是mysql

2010-07-04

猜数字的struts web例子

这是一个利用struts中的ActionForm和Action的实例,由程序随机产生数字,由用户猜

2010-07-04

struts标签库应用

这是一个关于struts标签库应用的web项目,包括struts的html,bean,logic,nested标签

2010-07-04

struts web的登录项目

在myeclipse下用struts开发一个web项目,实现用户登录,数据库用mysql,需要导入相应的数据库连接包

2010-07-04

java swing 用户登录界面设计

用java编写的一个连接数据库对用户登录进行安全验证.

2010-03-18

关于复杂网络特性的研究

描述了复杂网络的基本特点,如小世界模型,无标度特性

2010-03-08

登录界面设计,含数据库连接

利用java的awt和swing里的组件实现一个简单的用户登录界面,其中的用户名和密码通过连接数据库进行查询验证登录者身份

2010-03-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除