RabbitMQ的延迟消息

之前使用了ActvieMQ的延迟消息,最近看了一些RabbitMQ的延迟消息。RabbitMQ中提供了关于延迟消息的插件RabbitMQ通过插件的形式来支持延迟消息。 实现开始时间不确定的定时任务触发,我们可以引入延迟消息的使用。 注意:只有RabbitMQ 3.6.x以上才支持延迟消息 插件安装 安装方式很简单,在这个页面:http://www.rabbitmq.com/community-pl … 继续阅读

ActiveMQ 延迟消息与定时任务

最近在实现一个定时发送推送消息的功能,用到了延迟消息,想整理一下延迟消息消息相关的东西。 实现定时发送这个需求通常有两种方式: 轮询定时任务:给定周期内扫描数据表,查看是否有认为还没执行。 这种实现可以很简单,只需要启动一个定时任务即可;但缺点同样也很明显,这个间隔扫描的时间不好控制。 给短了会造成很多无意义的扫描,增大数据库压力,给长了又会使得误差较大。 延时消息:创建定时任务的时候,发送 N … 继续阅读

CAP理论

这是分布式理论的理论基石。 CAP理论概述 一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。 定义 Consistency 一致性 一致性指“all nodes see the same data at the same time”,即所有节点在同一时间的数据完全一致。 一致性是 … 继续阅读

GC Root和可达性分析算法

对象生死判定 如何判断Java中一个对象应该 “存活” 还是 “死去”,这是 垃圾回收器要做的第一件事。 GC Root GC Root也成为GC根对象。 GC根对象 在Java中, 可作为GC Roots的对象包括以下四种: 虚拟机栈(栈帧中的本地变量表)中引用的对象 本地方法栈 中 JNI (Native方法)引用的变量 方法区 中类静态属性引用的变量 方法区 中常量引用的变量 可达性分析算法 … 继续阅读

Java对象引用类型

Java对象引用 从 JDK 1.2 版本开始,把对象的引用分为 4 种级别,从而使程序能更加灵活地控制对象的生命周期。这 4 种级别由高到低依次为:强引用、软引用、弱引用和虚引用。 StrongReference: 强引用 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java 虚拟机宁愿抛出 OutOfMemoryError 错误,使程序异常终止, … 继续阅读

QPS、PV和需要部署机器数量计算公式

QPS、PV和需要部署机器数量计算的整理。 QPS Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。 TPS TPS是 TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器 做出反应的过程。客户机在发 … 继续阅读