zoukankan      html  css  js  c++  java
  • 2018/1/28 RocketMq学习笔记

    RocketMq是支持Topic模式的MQ中间件,它的传输格式为topic(主题,一个product对应一个主题,),Tag(标签,其实就是副标题,是为了更好的支持集群模式而出现的,这样客户端可以指定所要接收的标签,划分更加细腻),
    key(键,一条消息对应一个键),body(要发送的具体内容,要转换为byte数组);

    RocketMq支持,同步发送和异步发送两种机制,同步发送也就是在生产方向broker发送消息后,要等broker返回响应,这样才能继续发送下一个消息;
    异步发送指的则是生产方向broker发送消息后,不等broker返回响应,直接发送下一条,不过也可以收到返回消息,需要实现SendCallback接口(其实底层是使用了Callable线程接口)
    (两者效率隔了百分之5边上)
    RocketMq生产者使用:
    三种生产模式:
    1.普通模式:使用传统的send发消息,不能保证消息的顺序一致性;

    2.顺序模式:可以保证严格的消息顺序进行消费;
    遵循全局顺序的时候使用一个queue(1,2,3要严格按照步骤执行),局部顺序的时候可以使用多个queue并行消费(多个123,之间互不干扰)

    3.事务模式:支持事务方式对消息进行提交处理,在rocketmq里事务分为两个阶段 .
    第一个阶段是把消息发送给MQ的时候,此时消费方不可见,但消息已经发送到broker上;
    第二个阶段为本地消息回调处理,(这时候也就是存储到数据库中,或做其它操作)如果成功的话返回COMMIT_MESSAGE,则在broker上的数据对消费端可见,
    失败的话则返回ROLLBACK_MESSAGE,消费端不可见.
    事物模式主要是为了能保证数据的一致性,也就是保证数据能百分百入库加百分百发送到mq上否则就是失败,实现了分布式事物;不过阿里砍掉了,一个检查事物是否成功的机制,
    所以不能保证就算在遇到突发情况的情况下也能使数据保持一致性;

    RocketMq的主题在发送前要事先在broker中配置好

  • 相关阅读:
    26个Jquery使用小技巧
    jQuery之浮动窗口
    Visual Studio 2010 TFS指南
    Python
    HTML5小菜
    记一次重构经历【转载】
    Python学习笔记
    Spring.Net+NHibenate+Asp.Net mvc +ExtJs 系列
    搜索分词实现
    UML概要
  • 原文地址:https://www.cnblogs.com/yangfeiORfeiyang/p/8370570.html
Copyright © 2011-2022 走看看