异步消息传递技术 JMS AMQP MQTT

        广泛使用的三种异步消息传递技术:JMS AMQP MQTT

JMS AMQP MQTT

        JMS(Java Message Service):一个类似JDBC的规范,提供了与消息服务相关的API接口

        JMS消息模型:
               P2P 点对点模型:消息发到一个队列,队列保存的消息只能被一个消费者消费或超时;
               publish-subscribe发布订阅模型:消息可被多个消费者消费,生产者和消费者完全独立,不需感知双方存在
        JMS消息种类:

TextMessage MapMessage BytesMessage StreanMessage ObjectMessage Message(只有消息头和属性)

        JMS实现:ActiveMQ、Redis、HornetMQ、RabbitMQ、RocketMQ(未完全遵守JMS规范)

注:JMS只是一个规范,具体使用依靠具体消息服务商开发的中间件。就像GET/POST传输数据也只是一个约定的规范而已。

考虑了跨平台性和兼容多语言能力:AMQP出现


        AMQP(advanced message queuing protocol):一种高级消息队列协议,也是消息代理规范,规范网络交换的数据格式,兼容JMS
        优点:具有跨平台性,服务器供应商,生产者,消费者可以使用不同的语言来实现
        AMQP消息模型:

direct exchange / fanout exchange / topic exchange / headers exchange / system exchange

        AMQP消息种类:byte[]
        AMQP实现:RabbitMQ、StormMQ、RocketMQ

        注:消息种类,到AMQP都被统一为byte[]字节数组的格式了,因此无论是什么平台,都能用字节的方式,达到跨平台的效果。有种说法是:AMQP规范的是消息传递的格式(协议),JMS规范的是消息开发的API(规范)


        MQTT(Message Queueing Telemetry Transport)消息队列遥测传输:专为小设备设计,是物联网(IOT)生态系 统中主要成分之一,为物联网业务场景的设计逻辑。

常用消息队列服务

ActiveMQ 、RabbitMQ 、RocketMQ 、Kafka 。

    

下载地址:ActiveMQhttps://activemq.apache.org/components/classic/download/

activemq.bat启动,

默认服务端口:61616,管理后台端口:8161

RabbitMQ下载地址:Installing on Windows — RabbitMQhttps://rabbitmq.com/install-windows.html

 默认:服务端口:5672,管理后台端口:15672

# 启动服务      
rabbitmq-service.bat start
# 关闭服务      
rabbitmq-service.bat stop 
# 查看服务状态  
rabbitmqctl status

RocketMQ下载地址:

RocketMQ · 官方网站 | RocketMQ官方网站https://rocketmq.apache.org/

默认服务端口:9876

环境变量配置:ROCKETMQ_HOME、PATH、NAMESRV_ADDR

# 启动命名服务器
mqnamesrv
# 启动broker
mqbroker

Kafka下载地址:Apache KafkaApache Kafka: A Distributed Streaming Platform.https://kafka.apache.org/downloads

启动kafka

kafka-server-start.bat

默认端口:9092

猜你喜欢

转载自blog.csdn.net/lxd_max/article/details/132057947