所有文章
49 篇文章
分布式系统一致性问题处理思路
在传统单体架构中,数据状态的处理都在同一个服务和数据库中,而具有**ACID特性**的数据库支持强一致性,就是说数据库本身是不会出现不一致的状态的,比如我们常用的关系型数据库MySQL就是通过多版本控制协议(MVCC)的实现来保证了强一致性。 但是随着互联网的发展,用户增多&服务也越来越多越来越复杂...
Jasperreports OOM问题处理
项目使用Jasperreports来转换导出PDF,不过在转换过程中有时会出现OOM的异常。将直接导致线上系统不可使用。主要导致OOM的问题有如下两种: 1. jasper模板文件设计不合理导致Jasperreports进入死循环 2. 需要转换的文件确实很大,超过了系统所支持的内存范围 此前就有遇...
微信公众平台SDK JAVA实现WeChat-SDK
最近有做一些涉及到微信公众平台和第三方平台开发的工作。需要使用微信提供的接口。然而微信只提供了基于基本的 HTTP 接口,并没有对应各语言的 SDK 实现。所以如果自己开发的话需要封装一套 SDK。不过,微信公众平台出来几年了,市面上早就有不少 JAVA 实现的微信 SDK 了。于是便收集了一些开源...
使用checkstyle校验代码
目前手上接管了一个旧项目,在调整的过程中发现其编码规范非常的多样化。其实就是没有规范了。代码中的命名、注释、换行等风格都有多种,差不多每个曾经修改过代码的程序员都留来过自己的风格。代码风格质量良莠不齐,这导致新员工在阅读代码时需要花更多的时间,也更加痛苦。所以考虑使用 checkstyle 来校验统...
SpringBoot 整合Mybatis/Druid/Quartz
由于项目中定时任务逐渐增多,对系统的压力也慢慢增加。故打算将系统中的定时任务抽离出来。初步决定使用SpringBoot+mybatis+quartz的整合方式进行快速开发。 整个整合会包含如下任务: 1. 整合Mybatis(包括通用Mapper和分页插件) 2. 整合Quartz实现动态定时任务管...
mysql 5.7 group by 1055
最近遇到的一个问题,有个项目使用的mysql升级到5.7后,发现项目中有些sql语句执行会报错。 报错类似如下: 于是便查阅资料了。随后发现,原来mysql5.7.5后,ONLY_FULL_GROUP_BY 默认为真,那么此时select中的字段必须出现在group by中。官方的说明文档如下: -...
线上程序CPU过高问题排查
工作中负责的有一个项目是使用iReport+JasperReport实现的一个打印系统。最近这个线上程序经常无响应,重启后恢复正常,但是时不时还是会出现类似的问题。 最后发现是JasperReport的一个问题。有个JasperReport的转换任务内存占用特别高,当新对象需要分配内存时就会内存不够...
docker初识:运行mysql实例
CentOS 7.3 64bit 1. 移除旧版本Docker > yum remove docker docker-common docker-selinux docker-engine 2. 设置Docker仓库 2.1 安装所需要的包 > yum install -y yum-utils...
CentOS 7.3 搭建 OpenCart
Centos 7.3 64-bit - OpenCart 2.3.0.2 - How To Install OpenCart On CentOS 7 Linux - 配置支持SEO ,在OpenCart项目部署根目录下创建.htaccess文件,内容如下(需要在OpenCart后台打开SEO支持...
JAVA开源B2C系统
最近有人想面向境外销售商品,但是又不想依托于亚马逊这些平台,于是找我来帮忙想弄个B2C系统。因为刚开始只是打算试试水,也就不打算投入多少成本了。所以这边就考虑使用开源的B2C系统来直接使用了。 --- 由于自己的主语言是JAVA,平时工作也都是用的JAVA。考虑到以后需要对系统进行二开、部署维护等。...