曾经年少,踩过的坑
文章平均质量分 50
记录曾经踩过的坑,遇到的bug
JobsTribe
术业专攻,笔耕不辍
展开
-
云服务器搭建redis后,出现攻击外部ip行为
云服务器搭建redis后,出现攻击外部ip行为根据异常特征初步判断主机疑似因redis未授权访问漏洞被入侵,由于主机入侵较为严重,系统已不可信任,为防止黑客在主机内留有其他后门,建议备份业务数据,择机重装系统,并对redis进行安全加固。原创 2022-03-06 10:06:17 · 1467 阅读 · 0 评论 -
成功解决之git提交码云代码:remote: error: GE007: Your push would publish a private email address.
用git命令行提交gitee上的代码: git push -u origin master:master未提交成功,报错JobsTribes-Mac-Pro:springboot-programming-test jobstribe$ git push -u origin master:masterCounting objects: 18, done.Delta compression using up to 4 threads.Compressing objects: 100% (14/14原创 2021-04-24 14:13:37 · 3429 阅读 · 6 评论 -
java常见抛错之NullPointException抛错分析
java.lang.NullPointerException应该算是日常开发中最常见的抛错问题之一了。常见的问题就是在引用一个对象时,因为那么就汇总一下常见的错误原因及解决办法:字符串equals判断是否相等举例:String id = null;id.equals("1"){}这种可以将常量写在前面“1”.equals(id){}其他的String方法也包括:contains()等。对象为空时,要获取值举例:拿来student就直接用String name = student.ge原创 2021-04-21 22:05:09 · 648 阅读 · 0 评论 -
定时任务注解@Scheduled不生效
问题描述在用@Scheduled做定时任务的注解时,发现@Scheduled注解不生效。原因分析用能要交给spring容器的注解比如@Component注解。使用@EnableScheduling启动类里面/使用定时任务所在的类中使用@EnableScheduling 注解开启功能,自动扫描cron表达式写法不对正常写法:@Scheduled(cron="*/10 * * * * ?")代表10s执行一次,每个对应的是秒 分 时 天如果是想每天0:30执行一次,那就是:正常写法原创 2021-04-18 20:18:17 · 16015 阅读 · 0 评论 -
【Mysql系列】Mysql与本地时间不一致 ,导致update无法正常更新表
记录在测试时出现的mysql问题。问题描述摘要状态项目,项目的主要内容是更新表中商品入驿站的入库、上架和签收状态,然后在手机客户端会查询表来展现商品的状态。这次重构项目,在自测完成后交给测试测试,测试用手机客户端来测试。在测试时发现在做了入库后,更新上架操作时却始终更新不了表的状态。问题分析这次测试是在测试环境进行测试的。查看打印的日志分析日志,并没有报错。而且自测时这个sql也能正常更新表。也就是说,这个sql是没有问题的,只不过update更新条数为0。那么就需要分析什么原因导致sql原创 2021-04-16 19:48:54 · 353 阅读 · 0 评论 -
Spring中@Autowired注解失效原因集锦
在微服务项目中,会遇到@Autowired注解失效的情况。下面就汇总一下@Autowired注解失效的原因。new出来的对象在做项目时,本来在对应的类中加了@Component的注解,但是实际在使用时却new出来了对象。在获取对象时一直是null,经过排查发现是因为new出来的对象,Spring容器并没有真正管理。而Spring是默认单例的,如果加了注解,那么创建对象就是Spring来做了。如果直接new出来一个对象,那么这就不是交给Spring IOC来管理了。没有加对应的注解能交给Spri原创 2021-04-15 21:31:03 · 2619 阅读 · 0 评论 -
【Mysql系列】生产问题之mysql死锁和分库分表未带分片键问题
记录生产mysql的问题点。业务场景与问题描述请求一个外部接口时,每天的请求量在900万左右。分为请求项目和回执这两个项目。请求是用来调用外部接口,回执是接收发送的接口。在发送请求前会先插入数据库。在请求后,如果接口返回调用失败,会更新数据库状态为失败。如果发送成功,则会等待上游给出回执消息后,然后更新数据库状态。而在生产运行过程中,半年出现过两次mysql导致的mq消费者堆积的问题。问题分析记录两次不同的原因导致的生产问题及原因分析。mysql死锁问题查看mq聚合平台TPS上生产发原创 2021-04-14 22:42:21 · 629 阅读 · 0 评论 -
【生产问题】服务假死,无法正常请求进服务
记录生产出现的问题点。问题描述mq的某个消费者告警了!!!mq堆积数从5000条,不断增加到7万,一直往上升。问题分析查看mq集合平台查看TPS情况登录上mq聚合平台,看目前堆积在20万,仍然在不断增加,但是TPS为0。查看生产服务器,发现4台服务器的日志没有任何打印。重启后,刚开始10s中会打出日志,但是后面不再打印日志。再重启其他几台服务器时,发现是同样的问题。查看服务状态查看启动的服务,发现正常启动。刚启动ping一个用于测试的接口,可以正常调用通。再过20s ping接口时,原创 2021-04-13 21:56:55 · 710 阅读 · 0 评论 -
sql常见报错问题集锦(持续更新)
汇总在工作中遇到的各种sql问题。bad SQL Grammar:SQLexception is java.sql.SQLException: No value specified for parameter 3问题描述报错信息bad SQL grammar [ update station set reserve2 = ? ,status = ? , phone = (case when dest_phone is null or phone = '' then ? else phone end)原创 2021-04-09 19:31:10 · 1601 阅读 · 0 评论 -
Jedis使用中常见问题集锦(持续更新)
Jedis 是 Redis 官方首选的 Java 客户端开发包。在平时使用中会遇到很多的问题,那么,现在就汇总一下遇到的问题点。jedis中的JedisPoolConfig没有setMaxActive和setMaxWait属性高版本的jedis jar包在使用JedisPoolConfig时,是没有setMaxActive和setMaxWait属性的。是因为属性名称发生了变化:maxActive ==> maxTotalmaxWait ==> maxWaitMillis...原创 2021-04-08 22:27:08 · 139 阅读 · 0 评论 -
调用接口时返回乱码或者XML格式的类型,如何返回json类型
问题描述:发送验证码服务,opUpload服务调用时返回:<Map> <data> <status>0</status> <message>success</message> <data> <id>420201223fcd2a1332b027026b0d7bde14d4cfae3791322381925744640</id> <appSmsId>f574原创 2021-04-08 22:04:07 · 473 阅读 · 0 评论 -
用Gson 实体类转换ZonedDateTime类型
实体类直接转换会报错,所以需要特别转换:Gson gson=new GsonBuilder().registerTypeAdapter(ZonedDateTime.class,new JsonDeserializer<ZonedDateTime>(){ @Override public ZonedDateTime deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeseria原创 2021-04-05 08:48:10 · 343 阅读 · 0 评论 -
BeanUtil.copyProperties 引用jar包不当导致数据为空
问题描述:上代码:public void saveDB(Student student) { Student stu = new StationSmsToBigDataDto(); BeanUtils.copyProperties(student, stu); String name = stu.getName();}在程序测试时发现,name始终获取不到,而实际上对象student这个变量name是有值的。分析排查发现BeanUtil引用了Spring框架自带的jar包,查看源原创 2021-04-04 21:52:17 · 625 阅读 · 0 评论 -
http请求问题集锦(持续更新)
记录请求时抛错问题及解决办法。Connection reset报错信息I/O exception (java.net.SocketException) caught when processing request ->{}: Connection reset分析原因:项目中我的问题点:公网,没有申请连接权限,申请权限后成功访问。具体参考文章列表:Connection reset原因分析和解决方案http client遭遇Connection reset问题,以及解决方法解决:原创 2021-04-03 13:00:43 · 146 阅读 · 0 评论 -
【RocketMQ系列】RocketMQ nameserver升级到mqcloud导致负载不均衡
问题描述项目重构,需要将RocketMQ nameserver 模式升级为mqCloud集群模式。相当于主题和消费组都没变,只是模式改变了。上生产时总共15个节点,先上一个生产节点,将老服务停掉,启动mqcloud模式的服务,其余的14个节点仍然是nameserver模式。但是在运行中mq时不时有数据堆积的告警。原因分析查看mq聚合平台页面查看发现:mq消费时出现节点不均衡的问题。15个节点,有5台broker分配了两个节点,而有4台没有分配到消费的节点。而查看分配到两个节点的broke原创 2021-04-03 10:50:39 · 375 阅读 · 2 评论 -
【RocketMQ系列】RocketMQ一条消息被多台机器消费问题
业务背景重构项目,在测试环境联调,发布到一台服务器上启动。在app上触发一条消息到mq topic A,然后我这边消费消息,将消息通过微信推送给用户。问题描述触发消息后,结果却在1s内收到了两次微信通知,并且回执和库中却都收到了两条记录。但是在服务器上面查找日志时只收到了其中的一次请求。原因分析触发了一条,却发了两条。百思不得其解?于是就想到了其中一个方案,停了服务器上的服务后,再次触发,发现还会触发微信消息。那就说明有一台服务在跑。怎么找到这台服务?想到mq监控台页面可以看到是哪些ip在连原创 2021-04-02 16:23:44 · 3521 阅读 · 0 评论 -
【RocketMQ系列】RocketMQ常见报错点集锦(持续更新)
记录使用中间件RocketMQ中出现的问题点。org.apache.commons.lang3.NotImplementedException: please publish(String) or use DefaultMessageSerializer for class com.alibaba.fastjson.JSONObject原因分析翻译报错信息:没有实现接口或抽象类要求的方法。发送mq时,要么使用publish(String),要么使用alibaba的默认信息序列化器。报错的代码为发送原创 2021-04-02 14:49:38 · 2718 阅读 · 0 评论 -
redis-项目常见报错集锦(持续更新)
总结在项目中使用redis时遇到的问题及解决办法。Could not get a resource from the pool报错信息:redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the poolat redis.clients.util.Pool.getResource(Pool.java:53)at redis.clients.jedis.JedisPool.get原创 2021-04-01 12:45:05 · 1229 阅读 · 0 评论 -
tomcat项目问题集锦(持续更新)
tomcat属于好多年前用到的技术,这次要把tomcat老项目重构成微服务的形式。但是在重构过程中,要对tomcat老服务进行维护。期间踩了一些坑,下面就总结一下平时遇到的问题。Neither the JAVA_HOME nor the JRE_HOME environment variable is defined在setclasspath.sh中开始添加以下配置:即jdk安装的地址,需要根据自己的安装地址:export JAVA_HOME=/opt/jdk1.8.0export JRE_HOM原创 2021-03-31 19:26:09 · 79 阅读 · 0 评论 -
微服务常见报错集锦(持续更新)
微服务启动比tomcat启动快很多,但是启动时也会遇到各种问题,导致启动失败。下面就汇总项目中启动时出现的问题及解决办法:BeanCreationNotAllowedException: Error creating bean with name 'eurekaAutoServiceRegistration重构项目,新老项目所用的端口号是一样的,所以在没有杀死老服务的进程时,就启动了新服务,导致报这个错误。报错的原因在于端口被占用。...原创 2021-03-31 08:57:23 · 1195 阅读 · 0 评论 -
【Mysql系列】Mysql用delete删除数据后无法释放空间
在线上数据库报警说空间快满了,于是开发直接执行delete操作。delete from table_name t where t.create_time > '2021-03-21'结果发现空间并没有释放。什么原因呢?DELETE包含约束条件的执行的sql:delete from table_name t where 约束条件不会立即删除数据,会标记数据,但不会释放空间。如果需要立即释放空间,需要optimize命令:optimize table table_name备注:原创 2021-03-25 23:02:09 · 500 阅读 · 0 评论 -
【开发工具】idea常见问题集锦(持续更新)
IntelliJ IDEA,是java编程语言开发的集成环境。在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)。但是在使用中也会遇到一些问题,下面就记录在使用过程中常见的问题。忽略掉指定前缀/后缀的文件在使用过程中,总会出现如iml的文件,在代码提交过程中不注意就容易提交上去。那么就可以直接在idea中直接设置忽略这些文件。具体办法:File-Settings-Editor-File Types,在右下角加上要忽略的文件原创 2021-03-20 21:25:10 · 398 阅读 · 0 评论 -
【缓存】Redis中添加json格式的字符串
在测试环境中需要在redis中获取到一个json串内容的基础信息,但是redis中并没有对应key的值,则需要设置redis的key值后才能正常测试。那么,有哪些方式处理?java代码直接搞定直接用java代码连接redis实例解决。在rdm客户端中添加不能直接在控制台写,否则会报错。在rdm客户端中点击一下对应的redis实例,选择展开的db0,右键-Add New Key。选择对应的key和value,填入进去即可。在linux服务器上用set命令在 redis 服务上执行命令:re原创 2021-03-17 23:26:37 · 2542 阅读 · 0 评论 -
【集合】Map使用时常见问题集锦(持续更新)
Map是Java开发中常用的集合,下面记录使用过程中常见的问题。实体类中的boolean类型转Map<String,String>后,取出来报错现在要将实体类转为Map<String,String>,然后在其他地方取出来。SmsDto smsDto=new SmsDto();//sendFlag是boolean类型smsDto.setSendFlag(true);Map<String,String> map=JSONObject.parseObject(JSO原创 2021-03-16 23:33:24 · 588 阅读 · 0 评论 -
【Mysql系列】Mysql踩坑:update两次相同数据,影响的行数是否都为1
在重构一个服务时,需要根据mysql update更新的条数来判断执行的是否成功。结果发现update的条数竟然返回是0。经过排查发现:mysql在更新数据时,第一次返回是1,第二次返回就是0。举例:第一次将name改为zhangsan,影响行数为1:第二次拿着相同的数据更新表字段值,影响行数为0:此处需要拿更新的条数,那么就需要更新表中的update_time字段,这样就不管前后更新的数据是否一致了。需要特别注意:update_time最好是毫秒级的,因为程序处理快时秒级的是不管用的。原创 2021-03-15 23:12:10 · 1827 阅读 · 0 评论 -
【Maven】常见问题集锦(持续更新)
maven是java开发常用的工具,可以很快地对项目进行构建,包含了clean、compile、package和install等功能。在平时使用中,如果在maven引入依赖不对时,就很容易造成打包不成功,有时解决打包的问题就可能要很久。所以,在平时一定要多总结项目常见的问题,避免因maven打包影响了进度。下面就总结一下目前maven常见的问题。Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:tes原创 2021-03-13 23:41:40 · 1423 阅读 · 0 评论 -
【Maven】Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test
在给SpringBoot项目打包时,出现maven打包的错误:报错文字信息:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test (default-test) on project state-notice-starter: There are test failures. [ERROR] [ERROR] Please refer to E:\Project\state02\原创 2021-03-10 19:23:48 · 1334 阅读 · 0 评论 -
【微服务】SpringBoot log4j日志到服务器无法输出到日志文件
SpringBoot微服务启动后,在控制台可以正常输出,但是将服务发布到linux服务器上以后,只看到启动的内容,后续的日志看不到。原因是什么呢?1. 启动账号不对项目用root启动后,用admin启动后无法正常输出到日志中2.日志jar包冲突导致的:原本的内容:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4原创 2021-03-09 22:35:10 · 1340 阅读 · 0 评论