一、简介

  RocketMQ是阿里旗下的一款产品,分为开源版本和非开源版本。相比于ActiveMQ,RocketMQ支持顺序消费、事务机制、失败重试机制、消息可查询、消息订阅、较强的水平扩展能力、亿级堆积能力以及友好的消息拉取模式。RocketMQ的开源社区比较活跃,经受过双十二的考验。(架构师杨正坤:oceanBase)

  在这里,我们用nameServer来替代zookeeper,nameServer不遵循JMS,有一些ActiveMQ中没有涉及到的专业术语需要了解一下:

  • push consumer
  • pull consumer
  • producer group 一类producter的集合
  • consumer group 一类consumer名称
  • broker:消息中转
  • 广播消息
  • 发布订阅模式:RocketMQ中只有这一种模式,只是有基于一个还是多个之说
  • 集群消息
  • message Filter:java代码上传
  • message persistence:仅支持kafka和RocketMQ这两种持久化
  • RocketMQ是无界的
  • 带有消息过滤

二、搭建

2.1 几种模式

  1. 单master(基本不用)
  2. 多master多slave(不常用)
  3. 多master模式(常用,大部分场景可以满足)
  4. 异步复制:向master发送成功就返回给应用表名成功
  5. 同步双写:数据和服务都无单点,可靠性很高,向master和slave都发送成功才告诉应用成功

2.2 步骤

  1. host配置
  2. 上传解压rocketmq压缩包
  3. 创建两台机器的存储路径
    ../store
    ../store/comitlog
    ../store/consumequeue
    ../sotre/index
  4. 修改 broker-a.properties <-- master1
           broker-b.properties <-- master2
    可清掉默认配置
    brokerClusterName都一样
    brokerName=broker-a
    brokerId=0表示master
  5. 修改日志文件
  6. 修改启动参数(JVM调优)
    runbroker.sh 最小堆是1g
    runserver.sh

四、聊一聊disruptor的全局事务和rocket的分布式事务

有人说disruptor能够实现分布式事务,实际上disruptor能够支持的那不叫分布式事务,而是叫全局事务。

p1生产数据给c1和c2,c1和c2都的执行结果给c3,c3看看c1和c2是不是都执行成功了,有一个执行不成功就回滚

真正的分布式事务应该是什么样的呢?

应该是ctrl指挥p生产数据,p生产完就完全不管这部分数据了,立即向ctrl报告。而mq拿到数据后就发送给订阅者,不管这期间发生回滚、重试神马,都在mq和c之间进行,而不会影响到前面的操作。也就是像图中那样,这一套系统被分成完全独立的两块,不相互影响。

五、mq架构

48.rocketMQ的更多相关文章

  1. RocketMQ——角色与术语详解

    原文地址:http://jaskey.github.io/blog/2016/12/15/rocketmq-concept/ RocketMQ——角色与术语详解 2016-12-15 THU 15:4 ...

  2. 分布式消息队列RocketMQ部署

    一.RocketMQ简介: RocketMQ是一款分布式.队列模型的消息中间件,具有以下特点: 1.支持严格的消息顺序: 2.支持Topic与Queue两种模式: 3.亿级消息堆积能力: 4.比较友好 ...

  3. 阿里 RocketMQ 安装与简介

    一.简介 官方简介: l  RocketMQ是一款分布式.队列模型的消息中间件,具有以下特点: l  能够保证严格的消息顺序 l  提供丰富的消息拉取模式 l  高效的订阅者水平扩展能力 l  实时的 ...

  4. RocketMQ安装与部署说明

    一.安装说明1.下载安装包,下载地址:https://github.com/alibaba/RocketMQ/releases/download/v3.1.7/alibaba-rocketmq-3.1 ...

  5. RocketMQ入门(3)拉取消息

    转自:http://www.changeself.net/archives/rocketmq入门(3)拉取消息.html RocketMQ入门(3)拉取消息 RocketMQ不止可以直接推送消息,在消 ...

  6. Linux环境快速搭建RocketMQ双Master模式

    RocketMQ的集群部署方式有多种,其中包括单个Master.多个Master.多Master多Slave模式(异步复制)以及多Master多Slave模式(同步双写).本次以多Master集群模式 ...

  7. rocketmq(1)

    参考: 开源社区:https://github.com/alibaba/RocketMQ rocketmq入门: http://www.cnblogs.com/LifeOnCode/p/4805953 ...

  8. RocketMQ环境搭建(双master双slave模式)

    1.环境准备: 准备四台主机(我这里用CentOSx64) 主机 角色 broker 192.168.192.130 Master1 BrokerServerA 192.168.192.131 Mas ...

  9. RocketMQ环境搭建(双master模式)

    介绍: 多Master模式,一个集群无Slave,全是Master,例如2个Master或者3个Master. 优点:配置简单,单个Master宕机或重启维护对应用无影响,在磁盘配置为RAID10时, ...

随机推荐

  1. How To Check Member In Window VS With CplusPlus?

    实例说明 下面这个实例代码, 快速举例了在Win32应用程序下,对于内存的泄漏检查. 其中的原理,目前本人还是不太的理解. 只是记录了使用方法. 以后,看情况,会更新的. #ifdef _WIN32 ...

  2. cmake 强制链接静态库

    add_executable(main main.cpp) target_link_libraries(main ${CMAKE_SOURCE_DIR}/libbingitup.a) 静态库和动态库共 ...

  3. halcon的tuple算子功能总结

  4. Golang之Struct(二叉树定义)

    接招吧,看代码: package main import "fmt" //二叉树结构体 //如果每个节点有两个指针,分别用来指向左子树和右子树,我们把这样的结构叫做二叉树 type ...

  5. centos7之saltstack安装

    查阅来自salt官网:http://docs.saltstack.cn/topics/installation/rhel.html To install using the SaltStack rep ...

  6. Java 中的类

    public class Test{ public static void main(String[] args){ Animal a1 = new Dog(); a1.shout();//编译通过 ...

  7. 如何把App放在服务器上供用户下载

    如何把App放在服务器上供用户下载 有时候做了个简单的App想把App给朋友帮忙测试一下,却发现上传到各种平台很麻烦,肿么办?难道一个个拷贝,那也太low啦,不是咱程序员该干的事儿,好的话不多说,开搞 ...

  8. 三种调用WCF服务的代码

    wsHttpBinding,Massage UserName认证 static void Main(string[] args) { //使用服务引用方式生成的Client调用服务,使用自动生成的配置 ...

  9. IE(IE6/IE7/IE8)支持HTML5标签

    让IE(ie6/ie7/ie8)支持HTML5元素,我们需要在HTML头部添加以下JavaScript,这是一个简单的document.createElement声明,利用条件注释针对IE来调用这个j ...

  10. JoinMap

    #include <iostream> #include <fstream> using namespace std; #include <opencv2/core/co ...