主页

Nginx 配置 HTTP/2

前提条件,Nginx 已经配置好 SSL 的 HTTP/1 访问。 至于为何要使用 HTTP/2,我便不讨论了,可以参见文后给出的参与链接。 升级 Nginx 版本 当前(2016-02-26) nginx Stable version 最新为 1.8.1,Mainline version 最新为 1.9.12 ,我们需要使用 1.9.5+ 版本才能支持 HTTP/2 的配置访问。可以通过 nginx -v 查看系统中安装的 Nginx 版本,因为我的 Nginx 版本过低,所以我们先升级当前的 Nginx 版本。 修改 /etc/yum.repos.d/nginx.repo 的 nginx 仓库地址为 mainline 的版本 [nginx] name=nginx repo...

阅读更多

乐观锁

假设有一个库存表为 table, 结构如下: 列名 描述 ID 主键 number 数量 这里暂时不考虑服务器数量、页面 CDN 缓存、带宽等问题。我们常需要的操作是在 A 上同时增加 B、C,要的结果是 ABC 或者 ACB,而不希望是 AB 或 AC。再其次之,如果结果是 AB,则需要给 C 返回一个错误。 数据库乐观锁 数据库表中增加一个 version 字段,默认值为 0。在需要修改前,先查询 version,在修改时验证 version 且令 version = version + 1。在大多数的场合中,用来控...

阅读更多

Maven 打包实现生产环境与测试环境配置分离

我们可以把环境变量配置在 maven 的配置文件中,然后打包发布或者运行时加上参数来区分运行的是测试环境或者是生产环境。这样在版本管理时只需要提交一份代码,能更方便的做版本管理。 配置 pom.xml maven 配置文件中添加 resouces 资源文件的配置,并告知哪些配置文件需要动态替换或者哪些文件不需要替换。为了方便,我们设置需要替换的配置文件路径,在 build 节点中添加以下配置: <resources> <resource> <directory>${basedir}/resources</directory> &l...

阅读更多

Spring Cache 缓存注解实现

要使用 Spring Cache 前提是 Spring jar 的版本在 3.1 及以上,及引入 spring-context-*.jar,这个。其他的环境及 jar 包不作介绍。 缓存用的实体类 缓存用的实体类必须具有 getter 和 setter 方法。如下: public class ErrorEntity { private int code; private String msg; public ErrorEntity(int code, String msg) { this.code = code; this.msg = msg; } public int getCode() { ...

阅读更多

Mac 安装 DokuWiki

作为个人知识管理文库或者是团队知识文库,选择 wiki 都是一个不错的方案。DokuWiki 使用文本来存储 wiki 内容,也方便备份及转移。 Mac 配置 PHP 这里不多说,Mac 自带 Apache 及 php 插件,直接开启就可以。 sudo vim /etc/apache2/httpd.conf #找到 #LoadModule php5_module libexec/apache2/libphp5.so 并开启注释 sudo apachectl start #开启 Apache 访问 http://localhost/ 便可以看到 It Works! 系统自带的 Apache 的配置文件位于 /etc/apache2/,网站存放目录位于 /Library/W...

阅读更多