Blog.new '书豪'

技术博客


  • Home

  • Categories

  • Tags

  • Archives

  • About

Date类型字段反序列化后值发生变化问题

Posted on 2018-05-09 | In 解决方案 | Views:

问题现象

Date字段在不同机器上序列化、反序列化,时间值出现半个小时的偏差。

然而使用date命令查看系统时间,两台机器上的时间是一致的,时区都是CST(中间标准时间)。

Read more »

基于Canal使用HTTP协议跨机房公网同步数据

Posted on 2018-01-07 | In 后端技术 | Views:

前提

MySQL数据库自带基于binlog的主从复制功能,在内网中实现数据备份、读写分离是比较容易的。但是,在跨机房环境下通过公网如此同步数据就会存在一些困难:

  • 安全性:直接在公网上暴露3306端口显然存在安全性问题
  • 网络稳定性:公网的网络抖动是常态,长连接难以维持
  • 配置复杂:在TCP协议上一个端口只能暴露一个服务实例,在互联网出口上需要配置一堆不同的端口映射至不同的数据库服务器
  • 扩展性:基于binlong的数据复制,无法实现数据过滤、转换
Read more »

RabbitMQ拉模式批量消费消息

Posted on 2017-12-17 | In 后端技术 | Views:

实现RabbitMQ的消费者有两种模式,推模式(Push)和拉模式(Pull)。

实现推模式推荐的方式是继承DefaultConsumer基类,也可以使用Spring AMQP的SimpleMessageListenerContainer。

推模式是最常用的,但是有些情况下推模式并不适用的,比如说:

  • 由于某些限制,消费者在某个条件成立时才能消费消息
  • 需要批量拉取消息进行处理
Read more »

Maven偶现本地仓库jar存在仍然从远程仓库拉取且失败的现象

Posted on 2017-12-17 | In 解决方案 | Views:

问题现象

使用Maven过程中,曾经出现过本地仓库中已经存在某jar包,但是Maven仍然从远程仓库下载jar包的现象,并且可能会报出类似以下的错误:

1
2
[exec] [ERROR]   The project com.acme:test:0.0.1-SNAPSHOT (/home/acme/pom.xml) has 1 error
[exec] [ERROR] Non-resolvable parent POM: Failure to find com.acme.maven:parent-pom:pom:2 in http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced and 'parent.relativePath' points at no local POM @ line 5, column 13 -> [Help 2]
Read more »

Spring Boot自定义配置属性源(PropertySource)

Posted on 2017-12-05 | In 后端技术 | Views:

配置覆盖优于profile

在生产实践中,配置覆盖是解决不同环境不同配置的常用方法。比如用生产服务器上的配置文件覆盖包内的文件,或者使用中心化的配置服务来覆盖默认的业务配置。

相比于profile机制(比如maven的profile、spring boot的profile-specific properties),即不同环境使用不同的配置文件,覆盖的方式更有优势。程序员在开发时不需要关心生产环境数据库的地址、账号等信息,一次构建即可在不同环境中运行,而profile机制需要将生产环境的配置写到项目资源文件中,而且要为不同环境使用不同的构建参数或者运行参数。

Spring提供了灵活的配置扩展能力,有多种方式将自定义的属性源,将集成进来,可以轻松地实现配置覆盖。

Read more »

Linux Shell中'$'符号的N种用法

Posted on 2017-12-02 | In Linux | Views:

在Shell中$是一个特殊的字符,在不同场景中有不同的用法。

Read more »

使用Hessian传输BigDecimal值为0的问题

Posted on 2017-11-21 | In 解决方案 | Views:

问题现象

使用Hessian作为RPC框架传输数据,发现消费者收到的BigDecimal字段为0,而实际提供者返回的值非0。

解决方案

在消费者和提供者模块的src/main/resource/META-INF/hessian下:

增加serializers文件支持序列化

1
java.math.BigDecimal=com.caucho.hessian.io.StringValueSerializer

增加deserializers文件支持反序列化

1
java.math.BigDecimal=com.caucho.hessian.io.BigDecimalDeserializer
Read more »

Spring Boot创建自定义starter

Posted on 2017-11-16 | In 后端技术 | Views:

在Spring Boot中,starter是为快速应用开发提供“一站式服务”的依赖(Dependency)。starter使得开发人员在开始编写新的模块时不需要拷贝样板式的配置文件、编写样板式的代码,只需要提供最简单的配置(比如host & port)即可开始编程。

Read more »

Markdown输入特殊字段

Posted on 2017-10-18 | In 解决方案 | Views:

问题现象

在Markdown的表格中输入管道符|,或者在hexo的title中输入冒号:,都会导致解析错误。

解决方案

可以在Markdown中用Html编码输入各种字符,比如使用|输入|,使用:输入:。

编码转换可以使用Unicode编码转换工具。

Maven报“transitive dependencies (if any) will not be available”问题

Posted on 2017-10-17 | In 解决方案 | Views:

问题现象

使用Maven在构建模块A时报错:

[WARNING] The POM for x-y-z:1.0.0-SNAPSHOT is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details

Read more »
12

曹书豪

专注于互联网后端技术与可复用代码

14 posts
4 categories
34 tags
GitHub E-Mail
Links
  • Dozer
  • Roc wong
  • 晋哥哥的私房钱
  • 翔·工作室
© 2017 – 2018 曹书豪
Powered by Hexo v3.7.1
|
Theme – NexT.Mist v6.4.0