缓存更新(同步)

2017-09-21
阅读 1 分钟
6k
缓存同步方案总结 这里总结的缓存同步方案适合像Redis这种集中式缓存,也适合像本地缓存这种分布式缓存。这里按照缓存的更新及时性分为三类 及时性要求非常不高 及时性要求比较高 及时性要求极高 及时性要求非常不高 适合与分布的服务器,每隔一段时间更新内存数据或靠自定过期更新数据。 这种方式实现非常简单,适用于...

Maven 依赖关系管理机制及Maven多POM继承

2017-03-09
阅读 2 分钟
9.2k
Maven对依赖包的关系管理的主要手段是继承,这很像Java语言的继承关系一样。例如最简单的继承方式,在parent pom文件定义了jar的version,在children pom中可以不定义jar的version,而children也可以定义version来覆盖parent的version,这种思想完全和Java的继承与重载机制一致。

Java8 lambda支持

2017-01-05
阅读 3 分钟
2.4k
说lambdas前,先理解下什么是函数式编程,如果你是个纯Java程序员,而且之前一直是没有使用过Java8,可能还没有使用过这种编程方式。用一句最直接的话解释就是可以把函数当做参数传入。举个下面这样的列子

MySQL 原生SQL、JDBC、Spring事务使用

2016-06-03
阅读 3 分钟
5.3k
MySQL事务通过简单的Sql语句就可以开启提交或回滚事务,实际使用中特别是Spring对事务的封装,可以让我们通过声明或注解的方式就可以控制事务,还可以支持事务的嵌套、传播。为了理解这样的事务设计,还需要从基本的Sql事务控制开始入手。虽然spring提供了更强大更灵活的事务控制方式,不过有些开发者也许更喜欢原生的事...

Jedis 与 MySQL的连接线程安全问题

2016-05-09
阅读 3 分钟
4.2k
下面是set命令的执行过程,简单分为两个过程,客户端向服务端发送数据,服务端向客户端返回数据,从下面的代码来看:从建立连接到执行命令是没有进行任何并发同步的控制

并发同步控制

2016-05-03
阅读 3 分钟
3.4k
遇到并发时,我们避免不了要谈并发控制。在Java语言中,我们谈并发时,要谈到Object的监控锁。在MySQL的数据库并发中,我们也要谈到mysql的锁机制。

mysql & redis 性能测试

2016-04-29
阅读 2 分钟
8.6k
机器:Redis: Redis server v=3.0.5 sha=00000000:0 malloc=libc bits=64 build=3145a5e1a81fd3f7Mysql: Server version: 5.7.9 Homebrew测试工具:perf4j-zh 地址:[链接]

Task一个轻量级的分布式任务计算系统

2016-04-11
阅读 2 分钟
6k
Task是一个轻量级的分布式任务计算系统,他可以帮助你快速编写一个可以在集群环境下运行的分布式方法,而这只需要你使用一行代码就可以在你原有的方法上做到.

国外网站类似于stackoverflow、github访问慢的解决办法

2016-04-10
阅读 1 分钟
11k
之前写过一些关于解决github网站在某些宽带商下访问慢的解决思路。很多人反馈说有帮助。其实国外的一些网站访问慢的问题几乎是同样的,基本原因有两条:

Java elasticsearch direct buffer exception

2016-03-24
阅读 2 分钟
5k
在使用elasticsearch 2.2.0版本,使用scroll进行遍历获取数据时,在进行频繁的取数据时,发现内存占用在不断升高,直至抛出下面的异常信息。

Github访问慢解决办法

2015-12-20
阅读 1 分钟
31.4k
在家登录github网站,经常网页不能正常响应,但在公司的网络下访问就很正常。查了一些原因,基本上是说github的某些域名的dns解析被污染了。按照这种说法我查看了下github网站下的几个域名下的响应速度,的确如此,如下:assets-cdn.github.com域名的响应速度基本是都是超时

Thrift

2015-12-05
阅读 1 分钟
4.7k
rpc服务本质上是一种c/s架构服务.所以在编写一个rpc组件时,需要编写client端,server端,还要编写传输的协议.rpc框架主要是实现这三种部件的编码.省去我们在去编写这些RPC组件通用逻辑的地方.我们只需要编写我们的服务即可.

容错性不仅仅是允许出错

2015-11-04
阅读 1 分钟
3.3k
容错即是Fault Tolerance,确切地说是容故障(Fault),而并非容错误(Error)。例如在双机容错系统中,一台机器出现问题时,另一台机器可以取而代之,从而保证系统的正常运行

mac 邮件自动归类

2015-11-03
阅读 1 分钟
15.6k
之前使用邮件没有好好的区研究过邮件的app,直到有一天,我在清理邮件时把一封很重要的邮件删掉了...一直没能恢复。我想,邮箱也许都应该自动分类功能吧,只是我没有去好好研究这些常用的邮件app。于是我仔细看了下mac下自带的邮件,发现还真有我想要的功能,而且还很强大,直接贴图了

common-pool2 使用

2015-10-28
阅读 6 分钟
7.3k
common-pool2提供了3中对象池管理方式,它们的使用方式基本一样,这里以GenericObjectPool对象池为例介绍其使用方式,一般实现自己的对象池需要经过2个步骤

common pool2

2015-10-27
阅读 2 分钟
3.3k
在Java中频繁的创建对象和销毁对象都会消耗性能。为了避免这种问题,我们常会用到池技术。我们肯定听说过一些术语,比如:线程池,连接池。Executor调度器会管理着一个线程池,使提交的task由线程池中的空闲状态的线程去调度执行。我们创建数据库连接都会使用到连接池,像c3p0,这些都是我们经常接触到的池技术用到的地方。

Java四种引用类型

2015-10-26
阅读 4 分钟
3.2k
Java四种引用类型 在java中,类型就分为两种,基本类型和引用类型或自定义类型。 引用类型又分为四种: 强引用 StrongReference 软引用 SoftReference 若引用 WeakReference 虚引用 PhantomReference 划分这些类型的目的是:是为了更灵活的管理对象的生命周期,让垃圾器在最合适的时间适合回收对象,常见使用的场景是在...

Java Object对象的hashcode和equals方法

2015-10-26
阅读 3 分钟
3.3k
Object 在Java中Object对象是一切对象都会自动继承的一个类,在这个类中定义的属性和方法可以说是每个类都必须的。 这里有必要说说这里对象里面的几个方法 hashCode() 返回该对象的哈希码值。 为什么需要这个方法 我在面试时,问一些基本的Java知识时,很多时候会问到这个问题。但大多数人,没有很明白的说明这个问题。 ...

批量Future模式

2015-10-23
阅读 2 分钟
3.5k
在Future模式的讲解中,说到future模式是一种支持异步计算并可以返回计算结果,并在返回结果前可以阻塞调用者的线程对象模型。批量Future模式是在对Future模式的扩展。比如有,一批FutureTask,我要把这批task打包到一起,等待整个任务包执行完后,在返回给调用者,或在规定时间内返回计算结果。

开源监控项目APM

2015-10-22
阅读 2 分钟
2.8k
perf4j-zh重写per4j的图表渲染,由google的chartApi改为baidu的Echart图表,在google被墙的今天,使其更适合国内的使用行情。

Executor 并发调度模型

2015-10-16
阅读 1 分钟
2.7k
Executor是一种并发调度模式:它借助于队列和维护着一个用于调度任务的线程池来处理任务对象的调度。每一个Runnable对象都是一个任务单元,它是可以被Executor调度器调度的最小单元。当开发者创建一个Runnable对象时,开发者需要把它提交到Executor调度器中,调度器会把它送入到队列中,等待调度。线程池里面处于空闲的...

Future 模式

2015-10-15
阅读 4 分钟
4.1k
FutureTask是JDK针对与future模式的一种实现,它除了支持future特有的特点,还支持task的一些操作,比如取消,打断。一个FutureTask就是一个任务的计算单元,是调度的最小单位,它的调度借助于JDK的Executor任务调度模型。需要开发人员创建好FutureTask对象后,并送入到Executor去等待调度

Java在线调试工具

2015-10-15
阅读 1 分钟
6.3k
Qa :线上xx服务怎么回事,有人反应@#¥#@#¥#You :哦,我先看看啊...心想: 去,真的有问题,竟然没打log... 是不是传参传错了...看不出来了...异常信息也没有...这有点难办啊...

Java打印完整的堆栈信息

2015-10-13
阅读 2 分钟
18.4k
我们在编写一些组件时,使用的日志系统有时并不能打印完整的堆栈信息,比如slf4j,log4j,我们在调用log.error("found error ...",e)打印异常时,只打印一行异常信息。我们看下slf4j的源码

一部优秀的权限系统AuthManage

2015-10-12
阅读 3 分钟
3.7k
auth manage 这是一个统一管理系统权限,设计的目标是给开发者一个完整地权限管理系统,以便你能更专注自己系统业务的开发 特点 统一配置界面 简洁的客户端SDK包 支持不同平台,不同语言 易扩展 粒度随意掌控,可大可小 支持spring 项目文档 项目介绍 api 最新更新 2015-08-08 auth sdk 与 auth center 通信增加秘钥 优...

怎样编写maven parent pom 文件

2015-10-12
阅读 3 分钟
8.1k
parent pom 定义你的项目模型,包括构建方式,项目环境,项目依赖,输出JavaDoc,发布source源码等等,怎样去编写一份parent pom,这里是一个现成的并正在某些项目中使用到的:点击查看GitHub源码

Java实现循环队列

2015-10-11
阅读 2 分钟
3.7k
在做一个监控,用于保存最新的监控数据,需要一个集合存放监控数据,当集合满的时候,新的监控数据需要把旧的监控给冲掉,只保存最新的监控数据。下面是一个简单的实现

mac 下你一定要安装的几款软件

2015-10-11
阅读 1 分钟
3.1k
brew mac系统下的软件管家,类似你linux的apt-get、yum工具 查看brew zsh 一种模拟终端shell,是我用过的最好用的终端软件,特点 自动提示为命令行工具:支持常用的开发工具命令行的提示:git maven brew ... 强大的联想功能:当你键入cd xx进入一个目录下,它会自动把和关键字xx的目录都会显示,如果只有一个直接进入 好...

if brew install maven fail,you need update formula

2015-10-11
阅读 2 分钟
2.5k
有时候是很有必要更新或定制你需要安装软件的formula文件描述,比如我的系统更新到OS 10.11时安装maven时发现总是下载失败,失败原因就是formula文件描述的maven镜像有问题,这时我们直接修改formula的镜像描述,问题就可以解决,可以通过下面命令就可以编辑了

提升架构能力

2015-10-11
阅读 1 分钟
2.4k
这正是一个逼近软件本质的原则,它指导我们把经常使用到的功能抽象成库,把重复代码重构为可重用的框架模块。如果你用DRY来要求自己,很快你就会发现抽象和架构能力的飙升。