Spring Cloud重试机制导致接口多次调用问题

最近在项目上遇到一个奇怪的问题:

我们有两个服务,服务A调用服务B发送邮件,但结果是重复发送了4封邮件,内容还是一样的。一开始以为是邮件服务器出问题,但通过本地调试发现发送邮件的方法是被重复调用了。

至于为什么会重复调用,这得先了解一下Spring Cloud 的重试机制。

阅读更多
一千行 MySQL 学习笔记-转载阅读更多
JVM调优

JVM相关知识记录

阅读更多
无法创建本地线程分析

最近项目的系统突然出现崩溃,无法响应请求。使用运维账号登陆服务器也无法登陆,提示

1
2
fork: retry: No child processes 
fork: Resource temporarily unavailable
阅读更多
注解结合切面实现键值转换

不积跬步,无以至千里。不积小流,无以成江海。

通常我们有这种需求,某一个字段是由前台维护的:编码 <==> 含义,类似一个键值对。含义是可能会变化的,但编码是固定的,一般我们都会在数据库中直接存储编码,但数据返回给前台显示时需要展示为含义。当然我们可以在从数据库查询时去join到该值的含义一起返回,这里提供另一种方式来实现这个功能。

阅读更多
StringUtils工具类split方法对比

不积跬步,无以至千里。不积小流,无以成江海。

我们常用的StringUtils工具类org.apache.commons.lang3.StringUtils 与 org.springframework.util.StringUtils

他们提供的Split方法有差别,导致今天程序出现问题时费了点时间才发现问题。特意写测试对比了两个方法,以免以后再掉坑里。

阅读更多
Java8 全新的日期与时间 API

不积跬步,无以至千里。不积小流,无以成江海。

Java8 全新的日期与时间 API

主要如下:

  • LocalDate 表示年月日的日期
  • LocalTime 表示时分秒的时间
  • LocalDateTime 则包含以上
  • Instant 获取秒数
    • Instant.now() 创建对象
    • Instant.getEpochSecond() 获取秒数
    • Instant.toEpochMilli() 获取毫秒数
阅读更多
CXF动态客户端调用WebService

不积跬步,无以至千里。不积小流,无以成江海。

对于WebService的调用,之前是使用CXF直接生成代理类的方式,这样的好处是拿到后可以直接调用,但生成的文件太多,并且包名需要与服务端相同,使用进起来感觉很重。

使用CXF动态客户端的方式去调用也很简单,并且不需要生成任何文件。

阅读更多
Odata v2过滤常用指令

不积跬步,无以至千里。 不积小流,无以成江海。

最近在使用Odata,从官网上摘录一些常用的Odta v2指令记录一下。

阅读更多
Gson反序列化无法识别泛型的问题

不积跬步,无以至千里。 不积小流,无以成江海。

Gson提供了fromJson()toJson() 两个直接用于解析和生成的方法,前者实现反序列化,后者实现了序列化。

今天在使用 fromJson()遇到一个无法识别泛型的问题。

阅读更多