• RocketMQ综述(未完成)


    RocketMQ是一款分布式、队列模型的消息中间件,具有以下特点:

    1.能够保证严格的消息顺序 2.提供丰富的消息拉取模式 3.高效的订阅者水平扩展能力 4.实时的消息订阅机制 5.亿级消息堆积能力

    RocketMQ网络部署

    1、NameServer是一个几乎无状态的节点,可集群部署,一般用zookeeper实现,用于管理分布式Topic信息

    NameServer维护信息示例:
    rocketMQ/brokers/myserver
    rocketMQ/topics/epftopic4wolf
    rocketMQ/topics/epftopic4tiger

    2、Broker部署相对复杂,Broker分为Master与Slave,一个Master可以对应多个Slaver,但是一个Slaver只能对应一个Master,Master与Slaver的对应关系通过指定相同的BrokerName,不同的BrokerId来定义,BrokerId为0表示Master,非0表示Slaver。Master可以部署多个。
    每个Broker与NameServer集群中的所有节点建立长连接,定时注册Topic信息到所有的NameServer。

    Broker需要配置:
    broker.name=myserver
    broker.group=99
    运行RocketMq的server端程序,可以以war包的形式通过tomcat发布

    3、Producer与NameServer集群中的其中一个节点(随机选择)建立长连接,定期从NameServer获取Topic路由信息
    并向提供Topic服务的Master建立长连接,且定时向Master发送心跳,把消息发送到Broker,由Broker排队
    Producer完全无状态,可集群部署,运行rocketMq的Client程序。

    Producer需要配置:
    name=EPFProducer
    group=EPF

    4、Consumer与NameServer集群中的其中一个节点(随机选择)建立长连接,定期从NameServer取Topic路由信息;
    并向提供Topic服务的Master、Slaver建立长连接,且定时向Master、Slaver发送心跳。Consumer即可从Master订阅消息,也可以从Slave订阅消息,订阅规则由Broker配置决定。
    从Broker获取消息,可以为push和poll两种方式

    Consumer需要配置:

    name=EPFConsumer
    group=EPF
    Type=push

    Producter编程

    Consumer编程

     参考资料

    http://alibaba.github.io/RocketMQ-docs/document/design/RocketMQ_design.pdf
    http://www.uml.org.cn/zjjs/201504011.asp?artid=16152
    http://www.uml.org.cn/zjjs/201504021.asp?artid=16162

  • 相关阅读:
    学习PetShop3.0(9)工厂的资料
    net程序架构开发
    《解剖PetShop》系列之一
    与数据库相关的名词解释
    asp 导出Excel
    《解剖PetShop》系列之二
    业务模块的设计原则
    《解剖PetShop》系列之三
    JAVA之BigInteger(转)【转】【很好用啊】
    php_mcrypt.dll无法加载解决方法
  • 原文地址:https://www.cnblogs.com/mingziday/p/5182551.html
Copyright © 2020-2023  润新知