RabbitMQ的延迟消息

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

ActiveMQ 延迟消息与定时任务

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

Raft一致性算法

最近在看一些基础的分布式理论的书,整理一下相关的问题,做了一些详细的整理,方便之后梳理和查阅。 一致性问题 在分布式系统中,一致性问题(consensus problem)是指对于一组服务器,给定一组操作,我们需要一个协议使得最后它们的结果达成一致。 CAP理论对于分布式系统的论述,如果不想牺牲一致性,我们就只能放弃可用性,所以,数据一致性模型主要有以下几种:强一致性、弱一致性和最终一致性等,在本 … 继续阅读

CAP理论

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

Spring的编程式事务

常用的是通过注解方式来使用,但是时候需要编程式,在代码块里面管理事务,以便实现一些定制化的逻辑,故总结。 编程式事务管理 编程式事务管理: 通过Transaction Template手动管理事务 实现声明式事务的四种方式: 基于 TransactionInterceptor 的声明式事务: Spring 声明式事务的基础,通常也不建议使用这种方式,但是与前面一样,了解这种方式对理解 Spring … 继续阅读

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

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