zoukankan      html  css  js  c++  java
  • hj_rocketmq

    官方文档 -> rocketmq     github ->  rocketmq    

     消息队列是高并发系统的核心组件之一,能为系统解构提升开发效率,增加系统稳定性,主要有以下优势:

    • 削峰填谷 -> 解决瞬时写压力大于应用服务能力导致消息丢失,系统崩溃等问题;
    • 系统解耦 -> 解决不同重要程度,不同能力级别系统之间因为依赖而因一个而全部宕机问题;
    • 提升性能 -> 一对多的调用,可以一条消息给消息系统,其他相关系统分别处理;
    • 蓄流测压 -> 线上有些链路不好压测,可通过堆积一定量消息再开放来压测

    目前主流MQ -> Rocketmq , kafka , Rabbitmq , Activemq 

    rocketmq 主要优势: 经过双十一的高并发考验, 支持结合rocketmq的多系统之间数据最终一致性, 支持18个级别的延迟消息, 

            支持指定次数和时间间隔的失败消息重发, 支持 consumer 端 tag 过滤, 支持重复消费.

    架构图:

    • Name Server : 充当路由消息的提供者,一个几乎无状态的节点,可集群部署,节点之间无任何信息同步;
    • Broker : 消息中转角色,负责存储转发消息,部署相对复杂,分为 Master 与 Slave ,通过指定相同的BrokerName,不同的BrokerId
      来指定建立对应关系,BorkerId为0表示Master,非0表示Slave,都可以部署多个,每个 broker 与 Name Server 节点存在长连接,
      定时(30s)注册Topic到Name Server 中,Name Server 定时(10s)扫描所有存活的broker连接,若2分钟没收到心跳,则断开连接;
    • Producer : 与Name Server 集群中的一个节点(随机)建立长连接,定期(30s)拉取Topic路由信息,并向提供Topic服务的Master Broker建立
      长连接,且定时(30s)发送心跳,Producer完全无状态,可集群部署
    • Consumer : 与Name Server 集群中的一个节点(随机)建立长连接,定期(30s)拉取Topic路由信息,并向提供Topic服务的Master Broker
      Slave Broker 建立长连接,且定时(30s)发送心跳,既可从Master也可从Slave订阅消息,订阅规则由Broker配置决定.

      Broker 中的一些重要名词概述: topic -> 消息的第一级类型,如交易消息; queue -> topic下的子主题; tags -> 是topic下的次级/二级消息类型,如交易创建消息;

                                              offset -> 存储消息时为每个topic下的queue生成的一个消息的索引文件,每个queue都对应一个Offset记录当前queue中的消息条数.

    消息的种类

    • 按照发送的特点分: 同步消息  异步消息  单向消息
    • 按照使用功能特点分: 普通消息 顺序消息 广播消息 延时消息 批量消息 事务消息 

    参考博客:

       Rocketmq原理&复杂分布式事务解法

       Rocketmq简介

  • 相关阅读:
    课堂作业04 2017.10.27
    课程作业 03 动手动脑 2017.10.20
    课程作业 03 2017.10.20
    HDU 3974 Assign the task
    POJ 2155 Matrix
    POJ 2481 Cows
    HDU 3038 How Many Answers Are Wrong
    CS Academy Array Removal
    POJ_1330 Nearest Common Ancestors LCA
    CF Round 427 D. Palindromic characteristics
  • 原文地址:https://www.cnblogs.com/hua-jian/p/15396597.html
Copyright © 2011-2022 走看看