Redis,Kafka,ActiveMQ,RabbitMQ, JVM, lMax Disruptor 等实现的队列进行对比 --JVM篇

前言 前面章节提及到的队列的几种变形,本节就结合代码讲述JVM层面的队列的使用,也就是java原生里面支持双向阻塞的队列LinkBlockingQueue的使用。只是这里带出一个知识点就是,JVM在同一时刻只会初始化一个类,使用匿名内部类实现单例,这就支持了线程安全。具体代码如下。 秒杀队列(固定...

2019-01-21 23:07:05

阅读数 8

评论数 0

beanNameAware,applicationContextAware,DisposeableBean在项目中的使用

前言 今天在项目中使用了研发部对spring框架的扩展的应用,比如,实现消息队列功能的springEven,springListener,以及对上下文的扩展,实现了spring的applicationContextAware,而本节就是根据项目的扩展,综合的分析bean的生命周期,在这里,介绍项...

2019-01-21 21:04:50

阅读数 10

评论数 0

Redis,Kafka,ActiveMQ,RabbitMQ, JVM, lMax Disruptor 等实现的队列进行对比 --Redis篇

前言 上一节重点介绍了RabbitMQ在rabbitAdmin的使用以及结合RabbitTemplate的使用细节,从而介绍了适配器设计模式在监听器部分的应用场景,从而得出,rabbitMQ是灵活,适用性强的消息队列,而本节会重点的结合redis的使用场景来对redis重点介绍,之前的章节有介绍...

2019-01-20 22:34:24

阅读数 10

评论数 0

rabbitMQ里面的MessageListernerAdapter的适配器模式

前言 在前面章节提到rabbitMQ的监听器的适配模式的时候,就想找一篇关于适配器通俗易懂的文章给读者分析的。 适配器模式是将一个类的接口转换成客户希望的另外一个接口,身边很多东西都是适用于适配器模式的,笔记本的电源(也叫电源适配器),是将220V的交流电转换为笔记本电脑所需要的12V(电流先忽略...

2019-01-20 11:12:21

阅读数 9

评论数 0

Redis,kafka,activeMQ,RabbitMQ,JVM, lMax Disrupt等实现的队列进行对比--开篇

前言 结合前面提到的各种rabbitMQ的使用,本节开始综合的对比市场上流行的redis,kafka,activeMQ等的进行对比,附加使用的代码Demo提供参考。文章大致的结构分为,rabbitMQ的使用介绍,这里的介绍结合项目的使用源码,主要是结合MVC的使用,而其他的整合,比如spring...

2019-01-19 23:15:23

阅读数 10

评论数 0

rabbitmq的消息可靠投递 --下篇

文章目录 保证消息100%投递 如何保证生产者可靠性投递消息 方案一 : 消息入库,对消息状态进行打标。 方案二 : 消息延迟投递,进行二次确认,回调检查 confirm确认消息 Return消息机制 消费端限流策略 消费端ACK与重回队列 消费端的手动ACK和NACK 消费端重回队列 TTL队列...

2019-01-15 22:00:20

阅读数 10

评论数 0

RabbitMQ的消息可靠投递 --中篇

前言 上一节提到的问题,关于在消费端消费了消息后进行回调处理作出应答的机制,再通过RPC的方式进行调用生产端把没有正常消费的消息进行重复的投递的过程,产生的疑问都归结于,broker没有及时的作出回应的情况如何处理的问题,而本节就针对这个生产端以及broker端的应答作出详细的解说,结合上一节的内...

2019-01-13 22:47:49

阅读数 17

评论数 0

RabbitMQ的消息可靠投递 --上篇

前言 上一节介绍了有关rabbitmq里面常用了几种命令,以及交换机的路由规则等,生产端以及消费端之间的伪代码来介绍了各种路由规则下的消费情况,从管控台的设置,数据分析,了解到如何手动设置vhost下的交换机以及用户,队列等。这节开始就rabbitmq的高级特性进行详细的介绍,比如TTL,死信队...

2019-01-13 19:19:43

阅读数 26

评论数 0

RabbitMQ之渐入佳境

前言 上一节提及到的rabbitMQ提供的的三种常用命令rabbitmq-server,rabbitmq-plugins,rabbitmqctl,其中rabbitmqctl的命令最为丰富,功能支持用户的操作,交换机的操作,vhost等的操作,有关rabbitmqctl的使用可以通过在Linux系统...

2019-01-13 14:44:56

阅读数 15

评论数 0

CSDN站内最全的zookeeper分布式锁的讲解

1 场景描述 在分布式应用, 往往存在多个进程提供同一服务. 这些进程有可能在相同的机器上, 也有可能分布在不同的机器上. 如果这些进程共享了一些资源, 可能就需要分布式锁来锁定对这些资源的访问。 2 思路 进程需要访问共享数据时, 就在"/locks"节点下创...

2019-01-12 12:55:53

阅读数 21

评论数 0

分布式锁,使用redis还是zookeeper?--中篇

前言 上篇已经详细提及到redis实现的redLock算法下的分布式锁,在项目里出现的问题以及提出的解决的方案,现在就针对这个分布式锁的话题,这节就针对zk的锁来详细说明,项目里使用的zk实现分布式锁还是很方便的,使用起来比redis要高效,安全。而且ZooKeeper是一个分布式的,开放源码的分...

2019-01-09 23:36:50

阅读数 19

评论数 0

分布式锁,使用redis还是zookeeper来实现? ---上篇

背景: 项目终于在使用redis的redLock算法出现了生产问题,就是master-slaver模式,线程一进入lock,而master准备写进slaver的时候down了,而另外一个线程进入了lock,这时候就出现了并发的情况出现,虽然设置了过期时间,但是这时候数据已经不一致了。为了解决这个...

2019-01-09 21:56:57

阅读数 26

评论数 0

RabbitM基于Linux7.5的安装以及使用

这节简单的从RabbitMQ的环境搭建开始,详细的说关于什么版本的rabbitMQ对应什么版本的Erlang版本,附带图示,假设读者已经把需要的版本以及对应的Erlang完成下载并且安装,Linux7.5的RabbitMQ的旗舰版rpm包是一键安装,非常方便。关键是针对安装完之后以下的三个重要命令...

2019-01-08 21:56:18

阅读数 25

评论数 0

RabbitMQ的核心概念以及AMQP协议

前言 上一节从各个常用的mq的对比,拓扑图以及集群方案来做了对比,本节就针对rabbitMQ的基本的概念再深入的探讨以及巩固,为后续搭建多活架构做准备,本系列课程将同步慕课网,如果有需求的读者,可以自行慕课网学习,探讨。 RabbitMQ是基于AMQP协议 根据之前的人工智能的项目,使用消息队列也...

2019-01-07 23:35:48

阅读数 26

评论数 0

RabbitMQ与KAFKA还有ActiveMQ的对比

简单的对比三种生产上常用的MQ,提到这三种肯定很多人都使用过,下面针对他们的使用来做个对比。 ActiveMQ 作为老牌的消息队列中间件,只要使用在并发场景不是特别大的情况下,性能是非常好的,而且支持JMS规范。 而在集群方面一般采用的是zookeeper来进行心跳检查,主从的架构,或者是...

2019-01-07 21:57:11

阅读数 24

评论数 0

Postgre查询优化 --算法篇

前言 这部分的内容也是基于上章节提到的数据库优化的各种操作,比如逻辑层面,以及物理层面的,而这节将从物理层面来介绍PG 基于算法的优化,提到PG的算法优化就从PG引以为豪的遗传算法来介绍以及对比动态规划的优缺点来分别得出结论,什么情况下使用PG得到最好的解决方案。 动态规划算法 简单的介绍动态规划...

2019-01-06 22:05:13

阅读数 21

评论数 0

Postgre查询优化 --功能的角度优化分析

前言 前一篇文章已经从PG的数据结构等角度分析了PG的优化处理的源码细节,这节将从功能应用层面来对PG的查询优化进行分析。重点还是放到了逻辑查询优化功能上,分别针对,操作下推,谓词改造,语义转换,非SPJ优化等等内容。 PG查询优化器之逻辑查询优化 这里的逻辑优化是针对数据库常用的优化方案进行讲解...

2019-01-06 18:14:31

阅读数 26

评论数 0

UML图的回顾

前言 回顾软件开发的路层,都是练习使人进步,并不是查看了几篇博客,或者看了几集视频的结果,所以练习是很重要的,而提到开发,就从第一步开始,建模概念,建模就是需要告诉别人,开发的软件如何交互,设计的架构如何交互,数据如何传递,处理,返回等,下面就从网上一介绍来总结UML的在开发过程中的作用。 领域模...

2019-01-06 15:43:55

阅读数 16

评论数 0

从spring的ApplicationListener的角度了解异步机制

背景 接触新的项目的几天时间,除了传统的CRUD业务之外,项目用到的集群锁,以及事件监听广播机制等使用,使人联系其java.util.concurrent.futureTask.的使用,本节将从项目里遇到的各种业务场景中使用的广播事件来对异步线程池的处理广播事件总结,并且对这种事件的广播机制延伸...

2019-01-05 15:43:17

阅读数 16

评论数 0

jedis实现的分布式锁--项目中循环锁的使用

前言 从项目来看,是8台服务器集群来实现的单体系统,前端是vue,后台是MVC+Oracle+Redis来实现,前后端分离,业务中涉及到分布式事务的场景就是对jedis的实例调用的情况。 业务场景 在移动端的页面有这样的业务,用户可以查询自己的抽奖的次数,而且这种抽奖是每24小时会发放一次机...

2019-01-02 23:55:11

阅读数 19

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭