zoukankan      html  css  js  c++  java
  • 消息中间件-介绍

    消息中间件-介绍

      在分布式的环境下,我们除了使用httprest、rpc、消息中间件也是一个去使两个系统之间进行通信的方式,当我们想提高程序响应速度的时候,一个就是 【使用多线程进行并行处理】,另外就是使用【异步的方法】,那就可以使用(消息中间件)MQ

    【消息中间件】: 利用高效可靠的消息传递机制,进行多平台之间直接的交流的一种媒介(就是一个第三方的工具,可以让一个或者多个系统收到某个系统发出的消息。)主要做【数据的接受和传递

    应用场景】:跨系统之间的信息传递、高并发的流量削峰(当请求峰值来临,把数据放在中间件去慢慢处理)、以及数据的异步处理(类似注册,发短信这些东西就可以异步进行)

    常用的消息中间件】:

      Active(太老了,支持很多功能,所以性能不怎么样,一些老一点的项目会使用)、Rabbit、kafka、rokcet

    【核心组成】:

    • 【协议】:设置一种系统直接的语言规则,简而言之就是大家都要遵守相同的规则,否则彼此不知道对方发过来的是什么意思。
    • 【持久化机制】:在中间件内部保留数据的手段
    • 【消息分发机制】:一种消费消费模式,比如主动推送数据、或者别人来拉取数据。
    • 【高可用】:中间件自己不能宕机(有很多方式:分片复制,镜像、主从 so on)
    • 【高可靠】:保障消息被消费。

    协议:

    协议是计算机之间通讯时共同遵守的一组约定,对数据格式和计算机交换数据的一种规范。http、tcp/ip、 upd这些都是数据一种通讯协议

      这里用【http协议】举个例子说明协议的三个要素:

    • 语法】:传输信息的格式或者结构(请求报文和响应报文)
    • 语义】 :他则定义了数据格式,编码、信号、数据出现的顺序等(客户端主动发起的操作成为请求)
    • 时序】::通信双方通信的次序,他里面定义了速度匹配和排序等(一个请求,对应一个响应)

    常用的消息中间件协议:OpenWire、AMQP、MQTT(物联网)、Kafka、OpenMessage。他们等于是一系列规范,然后各种中间件对他们进行实现,就想servelet的实现有tomcat、jetty等

    【HTTP】不适合作为中间件的协议原因是:是因为http太重了,而且不高效(需要一次请求、一次响应)。

    AMQP】:【rabbit】和【active】使用他,他的出现最早是解决金融行业的可靠性的,所以【可靠性】是它的最大优势。 

    MQTT】:主要用在物联网上,【速度非常快】(用c编写的)计算能力有限

    【OpenMessage】:近两年由阿里、滴滴等共同发起的标准,【rocket】使用他,【结果简单、解析快、事务性】

    Kafka】:是一个基于TCP的二进制协议,所以他的能传输大数量,【简单、解析快、传输数据量大】【没有事务】

    持久化:

    简而言之,就是把消息数据存储起来,不能让数据存储在内存中,随着服务器重启而没有数据了。持久化的媒介: 磁盘上、数据库。除了active其他的mq都不支持数据库持久化

    消息分发:

    当消息中间件获取到数据后,是它主动发给其他系统,还是其他系统从它这里获取。还有是否需要消息重新发送(比如支付场景)。等等一系列消息分发机制。

    高可用:

    指的是当前的中间件本身,必须在使用的时间中,处于可以使用的状态,这个一般使用服务器集群进行解决

    master-slave->主从共享数据的部署方式】:类似于Mysql、Redis、Monogdb,每个从属中都有数据,但是只能通过master节点获取。他的高可用体现到各个节点存储的数据是一样的,宕机后可以从别的地方获取相同的数据

    Bloker-cluster->主从同步部署的方法】:分为多个副本,比如一个数据把他分开存储

    master-slave& Bloker-cluster】:前面两种方式的结合体,分为多个主节点,每个节点都有副本节点。【使用最多

    高可靠:

    指的是系统可以无障碍的持续运行,并且报错的几率比较低,以及保障消息被消费。

    消息传输可靠】:通过协议保证系统直接的数据解析的正确性

    消息存储可靠】:通过持久化保障消息存储的可靠性。

  • 相关阅读:
    2017ccpc全国邀请赛(湖南湘潭) E. Partial Sum
    Codeforces Round #412 C. Success Rate (rated, Div. 2, base on VK Cup 2017 Round 3)
    2017 中国大学生程序设计竞赛 女生专场 Building Shops (hdu6024)
    51nod 1084 矩阵取数问题 V2
    Power收集
    红色的幻想乡
    Koishi Loves Segments
    Wood Processing
    整数对
    Room and Moor
  • 原文地址:https://www.cnblogs.com/UpGx/p/14969833.html
Copyright © 2011-2022 走看看