消息队列

?xml version="1.0" encoding="UTF-8"?

ActiveMQ:Java语言写的   严格遵守 JMS java message service

RabbitMQ:Erang  非Java系统的首选

ZeroMQ:内存里用的,不支持持久化,金融场景比较多见

RocketMQ:阿里巴巴开源中间件  专门Java系统

Kafka:天生设计为分布式  很方便扩展  超高并发  10w+

第一种:点对点

先进先出

第二种:发布订阅模型


启动:

activemqstart

http://localhost:8161 admin admin

消息队列处理消息的主程序就叫Broker

ACK机制

如果broker收到producer的消息,会有一个回传(ack),如果producer没有收到ack,会重新发一遍刚才的消息,如果超过限制的重试次数,会抛异常。

broker发往consumer同理。


幂等:多次调用 结果和一次调用一致

场景:ack回传的时候网络故障,producer重试的时候带一个messageid,就能达到幂等

consumer获取消息有两种方式:

pull:轮询消耗资源,有延迟

push:消息比较及时

消息持久化

kahaDB:消息先存在kahaDB中,如果断线重连就从这里读取


topic 持久化订阅者  一直保持连接  

          非持久化订阅者  上线了再发送

activeMQ 高可用

主从:同一时间只有一个在运行,另一个准备状态。不能负载均衡,但一般不会丢失消息

负载均衡:可能会丢失消息


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景介绍 Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下: 以时间复杂度为O...
    高广超阅读 14,405评论 8 167
  • “ 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列...
    落羽成霜丶阅读 9,610评论 1 41
  • 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能...
    Sophie12138阅读 3,982评论 0 7
  • 引言 复习要点 本文大概围绕如下几点进行阐述: 为什么使用消息队列?使用消息队列有什么缺点?消息队列如何选型?如何...
    消失er阅读 3,942评论 0 9
  • 作者:孤独烟 出处: http://rjzheng.cnblogs.com/ 一、复习要点本文大概围绕如下几点进行...
    虾米爱螃蟹阅读 3,994评论 0 6