2:消息中间件种类

消息中间件种类。
ActiveMQ:并发高的情况下不优秀,早期比较流行。
Kafka:只关注于高并发,性能好,但是对数据重复、丢失、错误验证要求不高。
RocketMQ:纯Java开发,借鉴于Kafka,阿里开源,维护复杂。
RabbitMQ:基于Frlang语言开发,可靠、安全、稳定(新能没有Kafuka好但是也不差)。
为什么选择RabbitMQ?
    跨语言。数据可靠性高。
    SpringAMQP整合了RabbitMQ,有丰富的API。
    高性能。
为啥高性能?
     因为使用了Erlang语言,而Erlang语言是广泛用于交换机开发的语言。Erlang语言有原生Socket一样的延迟底。
什么是AMQP协议?
     AMQP(高级消息队列协议):为面向中间件设计的应用层协议。
    AMQP概念:
        Server:又称Broker,接受客户端连接。
        Connection:应用程序和Broker的连接。
        Channel:网络信道,消息传递的通道,客户端可以建立多个Channel。
        Message:传递的数据。由Properties和Body组成。通过设置Properties可以设置消息优先级、延迟投递等特性。
        Virtual host:虚拟主机。用于在逻辑层面上隔离(类似于包名)。一个虚拟主机里面可以有多个交换机和消息队列,但是不能有相同的。
        Exchange:交换机,接收消息,绑定消息队列。
        Bindin:交换机和消息对类需要绑定,绑定中包含一个 routing key
        Routing key :路由规则,可以用来确定一个消息的传递路由。
        Queue:消息队列。消费者监听并消费。      
RabbitMQ消息是如何流转的?    


  

原文地址:https://www.cnblogs.com/Xmingzi/p/12601454.html